iOS 7
以后ViewController
开始全屏布局
edgesForExtendedLayout
,它是一个类型为UIExtendedEdge
的属性,指定边缘要延伸的方向,它的默认值很自然地是all
,四周边缘均延伸,就是说,如果即使视图中上有navigationBar
,下有tabBar
,那么视图仍会延伸覆盖到四周的区域。
新建一个空项目, 在
Storyboard
中embed
一个Navigation Controller
:
因为默认是
all
, 这里在默认关联的ViewController
中将edgesForExtendedLayout
指定成了.bottom
, 相当于取消了顶部
代码:edgesForExtendedLayout = .bottom
通过截图来看的确达到了我们的预期效果, 但也因此影响到了
navigationBar
, 变成灰色了, 这时我们在通过translucent
取消穿透效果:
代码:self.navigationController?.navigationBar.isTranslucent = false