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 <- 5) {
        //向上拖动,隐藏导航栏
        CGFloat alpha =(scrollView.contentOffset.y )/(360*gScale);
        customNav.backgroundColor = [kWhiteColor colorWithAlphaComponent:1-alpha];

    }else if (velocity > 5) {
       //向下拖动,显示导航栏
        customNav.backgroundColor = kWhiteColor;

    }else if(velocity == 0){
        //停止拖拽
    }
}

猜你喜欢

转载自www.cnblogs.com/StevenHuSir/p/iOS_CustomNav_Hidden.html