translucent屬性

黑白小怪獸發表於2019-01-15

鬼魅的“64邊距”——translucent屬性 轉載自https://www.jianshu.com/p/930643270455 automaticallyAdjustsScrollViewInsets:意思是是否由系統自動調整滾動檢視的內邊距,預設為YES,意味著系統將會根據導航條和TabBar的情況自動增加上下內邊距以防止滾動檢視的內容被Bar遮擋。

設定導航條或者TabBar背景圖片的注意事項 這裡會詳細解釋官方文件對translucent屬性的註釋,為什麼放到這裡才說?因為官方文件對該屬性的解釋全部跟設定導航條或者TabBar的背景圖片有關!說明蘋果也知道,這裡坑很多,下面就來梳理一下吧。。。 translucent屬性的官方解釋

UINavigationBar/UITabBar的translucent屬性解釋:預設為YES,可以通過設定NO來強制使用非透明背景,如果導航條使用自定義背景圖片,那麼預設情況該屬性的值由圖片的alpha(透明度)決定,如果alpha的透明度小於1.0值為YES。如果手動設定translucent為YES並且使用自定義不透明圖片,那麼會自動設定系統透明度(小於1.0)在這個圖片上。如果手動設定translucent為NO並且使用自定義帶透明度(透明度小於0)的圖片,那麼系統會展示這張背景圖片,只不過這張圖片會使用事先確定的barTintColor進行不透明處理,若barTintColor為空,則會使用UIBarStyleBlack(黑色)或者UIBarStyleDefault(白色)。

設定導航欄背景圖片透明度問題

如果背景圖片沒有透明度,系統會自動把導航控制器的棧頂控制器的view的Y值增加64,如果沒有透明度,則不會增加。 這一情況的圖片必須是imageSet格式的,並且圖片的透明度為1(不透明),系統才會去調整。

相關文章