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];
}
原文地址:https://www.cnblogs.com/StevenHuSir/p/iOS_CustomNav_Hidden.html