iOS 導航欄顏色透明度漸變

Oranges發表於2017-12-13

最近公司專案,需要在首頁實現一個效果,隨著螢幕的滾動,導航欄背景色從沒有到完全顯示也就是透明度從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 結束語: 文章可能會存在錯誤,歡迎指正!

相關文章