2013-07-08 375 views
3

我有一個啓用分頁的scrollView。當我開始拖動到下一頁時,我想在我的導航欄中文字順利淡出。我委託方法做到這一點:淡出NavigationBar標題

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 

我計算與拖動的百分比:

CGFloat percentDragging = 1 - fmodf(scrollView.contentOffset.x,self.view.frame.size.width)/self.view.frame.size.width; 

這返回正確的價值觀。

所以: 我嘗試設置:

self.navigationController.navigationBar.titleView.alpha = percentDragging 

,但沒有奏效。

我所解決的問題:

((UIView*)[[self.navigationController.navigationBar subviews] objectAtIndex:1]).alpha = percentDragging; 

但這是醜陋的,原油,危險的解決方案。有一個更好的方法?

回答

1

設置titleView的alpha不起作用,因爲它不會讓您訪問默認的導航欄標題標籤 - 只有在設置了標籤後才具有值。我認爲你在這裏必須做的是自己設置一個自定義的titleView,包含一個帶有font/shadow /等的UILabel。設置爲與標準樣式相匹配,並在轉換過程中將該標籤淡入淡出。