最近公司项目,需要在首页实现一个效果,随着屏幕的滚动,导航栏背景色从没有到完全显示也就是透明度从0-1的过程.效果如下
实现方法
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
结束语:
文章可能会存在错误,欢迎指正!
网友评论