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底部開始。