iOS 随着滑动偏移导航条进行逐渐透明

吴江之畔、何不是项王,战他个荡气回肠。

在项目中可能会有一些产品效果就类似 根据我们用户手势滑动的范围来逐渐显示导航条的透明度或者导航条上的按钮变化以及另类的一些操作,下面仅根据透明度来举例操作方法 一下代码了进行参考.

//初始的时候设置透明度  也有可能是在根据滑动时才做判断
 -(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
// 设置导航栏为透明,并根据当前tableView的偏移量设置对应的 alpha
       self.navigationController.navigationBar.translucent = YES;
//表格的滑动位置
 [self NavigationBarWithOffsetY:self.tableView.contentOffset.y];
}

 //监听scrollView滑动
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView == self.tableView) {
 [self NavigationBarWithOffsetY:scrollView.contentOffset.y];
    }
}

 //实现方法// 界面滑动时导航栏随偏移量 实时变化
-(void) NavigationBarWithOffsetY:(CGFloat)offsetY {
    UIImageView *backView = self.navigationController.navigationBar.subviews[0];
    if (offsetY <= 0) {
        backView.alpha = 0;
//做一些想要的操作
    } else if (offsetY > 0 && offsetY < NAVBAR_HEIGHT) {
        backView.alpha = offsetY / NAVBAR_HEIGHT;
//做一些想要的操作  比如背景颜色
        self.navigationController.navigationBar.barTintColor=[UIColor redColor];
    } else if (offsetY >= NAVBAR_HEIGHT ) {
        backView.alpha = 1;
//做一些想要的操作 比如背景颜色 .更改文字标题  导航按钮样子  搜索条
        self.navigationController.navigationBar.barTintColor=[UIColor redColor]    }
}

你可能感兴趣的:(iOS 随着滑动偏移导航条进行逐渐透明)