ios7中的edgesForExtendedLayout

edgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。

因为iOS7鼓励全屏布局,所以它的默认值是UIRectEdgeAll——四周边缘都延伸,就是说,即使视图中上有navigationBar,下有tabBar,那么视图仍然会延伸覆盖到四周的区域。

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;

如上代码所示,设置了UIRectEdgeNone之后,镶嵌在UIViewController里面的UITableView和UIScrollView就不会穿过UINavigationBar,同时UIView也恢复到了iOS6时代。

 

不过,这个对于Status Bar在iOS7上的变化是无效的,正确的说应该是部分无效。在存在Navigation部分或者Tabbar部分的时候,上面的代码可以使得Status Bar也不再透明,但是在没有这两个部分的时候,Status Bar依旧是会计入UIView范围的。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。