1.這個屬性YES or NO 決定是否需要導航條/TabBar帶有半透明效果
官方解釋
UINavigationBar/UITabBar的translucent屬性解釋:默認為YES朋其,可以通過設置NO來強制使用非透明背景躺率,如果導航條使用自定義背景圖片省有,那么默認情況該屬性的值由圖片的alpha(透明度)決定录平,如果alpha的透明度小于1.0值為YES壹粟。如果手動設置translucent為YES并且使用自定義不透明圖片愕乎,那么會自動設置系統(tǒng)透明度(小于1.0)在這個圖片上。如果手動設置translucent為NO并且使用自定義帶透明度(透明度小于0)的圖片副编,那么系統(tǒng)會展示這張背景圖片负甸,只不過這張圖片會使用事先確定的barTintColor進行不透明處理流强,若barTintColor為空痹届,則會使用UIBarStyleBlack(黑色)或者UIBarStyleDefault(白色)
這是由于蘋果對滾動視圖的特殊性進行處理:對于類ScrollView,系統(tǒng)默認默認控制器屬性automaticallyAdjustsScrollViewInsets默認為YES打月。
請注意:iOS11開始队腐,蘋果摒棄了automaticallyAdjustsScrollViewInsets屬性,改由contentInsetAdjustmentBehavior(枚舉值)控制奏篙,下面會有詳細的解釋柴淘。
-
contentInsetAdjustmentBehavior定義及使用(適用于iOS11+,替代automaticallyAdjustsScrollViewInsets)
如果只想單純地設置導航條不偏移導航條+狀態(tài)欄和Tabbar高度秘通,不想看解釋为严,可以直接使用該宏定義解決方法適配的問題(宏定義來源:http://www.reibang.com/p/352f101d6df1):
還有viewController的edgesForExtendedLayout屬性,這樣三個屬性加frame的設置直接影響了view界面是否會下移64的高度
1.UINavigationBar/UITabBar的translucent半透明屬性
2.viewController的edgesForExtendedLayout屬性
3.類ScrollView的automaticallyAdjustsScrollViewInsets屬性(iOS1前)與contentInsetAdjustmentBehavior(iOS11之后出現(xiàn)的枚舉值)這些個View :scrollView tableView collectionView webView
4.frame的origin的y的值