iOS11 之后,添加導航欄之后,視圖添加在self.view 上面之后,視圖的位置是0 0 開始的,結果視圖添加的地方被導航欄給蓋住了,為什么不應該是在導航欄下方呢?
這是圖片 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
系統會自動調整tableView的內容偏移量
這樣以后我們就可以不用自己調節了,直接給tableVIew?frame為(0,0,SCREEN_WIDTH, SCREEN_HEIGHT),如果有導航欄?那么SafeAreaInsets值為(64,0,0,0),如果也使用了系統的tabbar,那么SafeAreaInsets值為(64,0,49,0),太方便了。
什么時候系統會調整內容的位置,當tableView的frame超出安全區域范圍時,系統會自動調整內容的位置。
圖片
頁面下沉
// 這是因為 UIScrollView 的 contentInsetAdjustmentBehavior 屬性默認為 automatic,通過以下代碼可以修復
if (@available(iOS 11.0, *)) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
// 當然,如果是使用 Storyboard,可以依次 Size Inspector -> Content Insets -> Set 'Never' 搞定