最近公司項目,需要在首頁實現(xiàn)一個效果,隨著屏幕的滾動,導(dǎo)航欄背景色從沒有到完全顯示也就是透明度從0-1的過程.效果如下
實現(xiàn)方法
1.隨著屏幕的滾動,改變導(dǎo)航欄的alpha,但是這樣有一個不好的現(xiàn)象,就是導(dǎo)航欄leftItem,rightItem等也會跟著改變,這個效果不是我需要的,我需要的是只改變背景色的alpha
2.我在導(dǎo)航欄上添加了一個view,讓view隨著屏幕的滾動實現(xiàn)效果,這個時候,添加的view最好在最底層,這樣才不會讓你添加的view遮蓋住其他控件.部分代碼如下
在viewDidLoad中添加如下代碼
[self.navigationController.navigationBar insertSubview:self.aplhaView atIndex:0];
但是這樣會有一個問題,在這個頁面pusg或者modal后的頁面中,剛才添加的view可能會布局在導(dǎo)航欄的最頂部或者其他的位置,這是因為,在push或者modal的時候,導(dǎo)航欄會重新調(diào)整布局,這個時候,我們就要改變剛剛ViewDidLoad中的代碼
[[self.navigationController.navigationBar.subviews firstObject] insertSubview:self.aplhaView atIndex:0];
Demo
結(jié)束語:
文章可能會存在錯誤,歡迎指正!