isTranslucent
设置navigationBar是否半透明,默认为
True
。
当isTranslucent
为False
时,添加view的frame默认从navigationBar下方开始计算
去除navigationBar下方黑线
navigationBar.shadowImage = UIImage()
automaticallyAdjustsScrollViewInsets、contentInsetAdjustmentBehavior
是否自动设置scrollView的内边距,默认为
True
,为False
时,添加view的frame默认从navigationBar下方开始计算
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
} else {
automaticallyAdjustsScrollViewInsets = false
}
automaticallyAdjustsScrollViewInsets与edgesForExtendedLayout区别
edgesForExtendedLayout
设置的是位置,automaticallyAdjustsScrollViewInsets
设置的是内边距。
ticallyAdjustsScrollViewInsets
为True
相当于scrollView.contentInset = UIEdgeInsets(top: navigationBar.heigth, left: 0, bottom: 0, right: 0)
extendedLayoutIncludesOpaqueBars
补充当navigationBar不透明的时候是否让scrollView能够显示于navigationBar下方。默认为False
.
容易出错的地方:
navigationBar为不透明时,extendedLayoutIncludesOpaqueBars为true时,scrollView将从navigationBar顶点的位置开始布局,而不是从navigationBar底部开始。