Translucent :默認為YES 導航欄默認有半透明度,self.view的坐標原點即為(0,0)這時子視圖為了不被導航欄遮蓋,注意要留出導航欄的高度
- 注意:當子視圖為tableView的時候,系統默認會自動設置邊距防止tableView中的內容被遮擋仗阅,我們布局的時候self.tableView.top.equalTo(self.view)這樣也不會有問題,系統已經搞定了一切
這里要注意一點国夜,當iOS7-11的時候减噪,tableView默認automaticallyAdjustsScrollViewInsets = YES時,僅當tableView = viewcontroller.view.subViews[0]的時候才有效车吹,項目中曾有過這種問題筹裕,排查后才發(fā)現 stackOverFlow鏈接 iOS11以上并沒有了這個問題,可能contentInsetAdjustmentBehavior已經修復了這個問題
所以系統會自動設置邊距窄驹,防止cell中的內容被遮蓋
automaticallyAdjustsScrollViewInsets = YES
iOS11下該方法已廢棄朝卒, 默認用該方法替代
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever
當設置Translucent = NO后,系統默認self.view坐標原點為導航欄下方乐埠,布局即不需要計算導航欄高度抗斤,當導航欄添加了默認的背景圖片,也是Translucent=NO一樣的效果
- 如果不需要系統自動為tableView設置邊距丈咐,添加以下代碼即可瑞眼,由開發(fā)者自己管理
if (@available(iOS 11.0, *)) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
self.automaticallyAdjustsScrollViewInsets = NO;
}