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
結束語:
文章可能會存在錯誤,歡迎指正!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容