关于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底部开始。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。