布局 - edgesForExtendedLayout

iOS 7以后ViewController开始全屏布局
edgesForExtendedLayout,它是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向,它的默认值很自然地是all,四周边缘均延伸,就是说,如果即使视图中上有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。

新建一个空项目, 在Storyboardembed一个Navigation Controller:

默认演示.png

默认hierarchy.png

因为默认是all, 这里在默认关联的ViewController中将 edgesForExtendedLayout指定成了.bottom, 相当于取消了顶部
代码: edgesForExtendedLayout = .bottom

取消top.png

取消top hierarchy.png

通过截图来看的确达到了我们的预期效果, 但也因此影响到了navigationBar, 变成灰色了, 这时我们在通过translucent取消穿透效果:
代码:self.navigationController?.navigationBar.isTranslucent = false

取消translucent.png

取消translucent hierarchy.png

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