iOS实现简易的导航栏颜色渐变实例代码

2020-01-21 07:21:53丽君

使用方法:

  • star:隐藏导航栏下的横线,将背景色置空,一般在viewWillAppear中调用,;
  • changeColor:WithScrollView:AndValue: :传入颜色、滑动视图、临界值来实现,一般在 scrollViewDidScroll中调用;
  • reset:显示导航栏下横线,还原导航栏,一般在 viewWillDisappear中调用。
    
    //VC.m文件
    
    /* 页面即将显示 */
    - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
    
     [self.navigationController.navigationBar start];
    
     //该页面呈现时手动调用计算导航栏此时应当显示的颜色
     [self scrollViewDidScroll:_tableview];
    }
    
    /* 页面即将消失 */
    - (void)viewWillDisappear:(BOOL)animated {
     [super viewWillDisappear:animated];
    
     [self.navigationController.navigationBar reset];
    }
    
    /* 滑动过程中做处理 */
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
     [self.navigationController.navigationBar changeColor:[UIColor redColor] withOffsetY:scrollView.contentOffset.y];
    }

    效果展示

    完整demo

    总结

    • 由于系统自带的导航栏经常不能满足需求,因此在开发中导航栏经常需要自定义,哪怕只是修改背景色。
    • 了解导航栏的结构处理起来会更容易。
    • 自定义导航栏也要考虑和其他页面的导航栏之间的相互影响。

      好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ASPKU的支持。