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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。