上划渐变导航条颜色
1.功能需求
剛進入頁面導航條背景為透明色,上劃一定距離改變導航條顏色為白色(漸變)
2.功能實現
2.1 在viewWillAppera中實現導航條背景色透明
-(void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];// 讓控件從(0,0)開始self.navigationController.navigationBar.translucent = YES;self.navigationController.navigationBar.shadowImage = [UIImage new];[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:0]; }2.2 在scrollView代理方法 scrollViewDidScroll中實現隨著滾動改變導航欄顏色透明度//只要滾動了就會觸發 - (void)scrollViewDidScroll:(UIScrollView *)scrollView;{// 動態更新navigationBar的顏色CGFloat offsetY = scrollView.contentOffset.y;if (offsetY > NAVBAR_CHANGE_POINT) {CGFloat alpha = MIN(1, 1 - ((NAVBAR_CHANGE_POINT + NavigationHeight - offsetY) / NavigationHeight));[self.navigationController.navigationBar setBackgroundImage:[FFCommonView createImageWithColor:[Color_NavigationBar colorWithAlphaComponent:alpha]] forBarMetrics:UIBarMetricsDefault];if (alpha == 1) {self.navigationController.navigationBar.translucent = NO;}else{self.navigationController.navigationBar.translucent = YES;}} else {[self.navigationController.navigationBar setBackgroundImage:[FFCommonView createImageWithColor:[Color_NavigationBar colorWithAlphaComponent:0]] forBarMetrics:UIBarMetricsDefault];} }
????ps:
????Navbar_change_point為導航條開始漸變色的距離;透明度變為1的時候設置translucent屬性為NO
?2.3 在viewWillDeillDisappear中還原之間的一些設置
-(void)viewWillDisappear:(BOOL)animated{[super viewWillDisappear:animated];self.navigationController.navigationBar.translucent = NO;//界面離開的時候重新設置回原來的樣式[self.navigationController.navigationBar setBackgroundImage:[FFCommonView createImageWithColor:Color_NavigationBar] forBarMetrics:UIBarMetricsDefault]; }總結
- 上一篇: dvi线支持多少分辨率_dvi接口有哪几
- 下一篇: NOIP 2008 普及组初赛试题 解题