iOS-导航栏颜色透明度渐变

最近公司项目,需要在首页实现一个效果,随着屏幕的滚动,导航栏背景色从没有到完全显示也就是透明度从0-1的过程.效果如下 图1.png 实现方法 1.随着屏幕的滚动,改变导航栏的alpha,但是这样有一个不好的现象,就是导航栏leftItem,rightItem等也会跟着改变,这个效果不是我需要的,我需要的是只改变背景色的alpha 2.我在导航栏上添加了一个view,让view随着屏幕的滚动实现效果,这个时候,添加的view最好在最底层,这样才不会让你添加的view遮盖住其他控件.部分代码如下 图2.png 在viewDidLoad中添加如下代码 [self.navigationController.navigationBar insertSubview:self.aplhaView atIndex:0]; 但是这样会有一个问题,在这个页面pusg或者modal后的页面中,刚才添加的view可能会布局在导航栏的最顶部或者其他的位置,这是因为,在push或者modal的时候,导航栏会重新调整布局,这个时候,我们就要改变刚刚ViewDidLoad中的代码

[[self.navigationController.navigationBar.subviews firstObject] insertSubview:self.aplhaView atIndex:0];

Demo 结束语: 文章可能会存在错误,欢迎指正!

PREVIOUSiOS开发错误集锦