关于NavigationBar的一些相关属性介绍

isTranslucent

设置navigationBar是否半透明,默认为True
isTranslucentFalse时,添加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设置的是内边距。
ticallyAdjustsScrollViewInsetsTrue相当于scrollView.contentInset = UIEdgeInsets(top: navigationBar.heigth, left: 0, bottom: 0, right: 0)

extendedLayoutIncludesOpaqueBars

补充当navigationBar不透明的时候是否让scrollView能够显示于navigationBar下方。默认为False.

容易出错的地方:
navigationBar为不透明时,extendedLayoutIncludesOpaqueBars为true时,scrollView将从navigationBar顶点的位置开始布局,而不是从navigationBar底部开始。

你可能感兴趣的:(关于NavigationBar的一些相关属性介绍)