iOS UIScrollView 上下滑动导航栏渐变或隐藏
导航栏颜色渐变或者设置隐藏
1.系统导航
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { //scrollView已经有拖拽手势,直接拿到scrollView的拖拽手势 UIPanGestureRecognizer *pan = scrollView.panGestureRecognizer; //获取到拖拽的速度 >0 向下拖动 <0 向上拖动 CGFloat velocity = [pan velocityInView:scrollView].y; if (velocity <- 5) { //向上拖动,隐藏导航栏 [self.navigationController setNavigationBarHidden:YES animated:YES]; }else if (velocity > 5) { //向下拖动,显示导航栏 [self.navigationController setNavigationBarHidden:NO animated:YES]; }else if(velocity == 0){ //停止拖拽 } }
2.自定义导航
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { //scrollView已经有拖拽手势,直接拿到scrollView的拖拽手势 UIPanGestureRecognizer *pan = scrollView.panGestureRecognizer; //获取到拖拽的速度 >0 向下拖动 <0 向上拖动 CGFloat velocity = [pan velocityInView:scrollView].y; //NSLog(@"velocity = %.f scrollView =%.f",velocity,scrollView.contentOffset.y); if (velocity <- 10) { //向上拖动,隐藏导航栏 //self.hkNavView.backgroundColor = kRedColor; self.hkNavView.hidden = YES; }else if (velocity > 10) { //向下拖动,显示导航栏 self.hkNavView.hidden = NO; //self.hkNavView.backgroundColor = kBlueColor; } //CGFloat alpha =(scrollView.contentOffset.y )/(70*gScale); //self.hkNavView.backgroundColor = [HKHexColor(0xFF55c9c4) colorWithAlphaComponent:alpha]; }