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' 搞定