您可以通过实现edgesForExtendedLayout
在 iOS7 SDK 中调用的新属性来实现这一点。请添加以下代码来实现这一点,
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone;
您需要在-(void)viewDidLoad
方法中添加上述内容。
iOS 7 对您布局和自定义UI外观的方式进行了一些更改。视图控制器布局、色调颜色和字体的更改会影响应用程序中的所有UIKit对象。此外,手势识别器 API 的增强功能使您可以更精细地控制手势交互。
使用视图控制器
在 iOS 7 中,视图控制器使用全屏布局。同时,iOS 7 让您可以更精细地控制视图控制器布局其视图的方式。特别是,全屏布局的概念得到了改进,让视图控制器指定其视图每个边缘的布局。
视图控制器属性在 iOS 7 中已弃用。wantsFullScreenLayout
如果您当前指定wantsFullScreenLayout = NO
,则视图控制器在 iOS 7 中运行时可能会在意外的屏幕位置显示其内容。
要调整视图控制器如何布置其视图,UIViewController
请提供以下属性:
该edgesForExtendedLayout
属性使用UIRectEdge
类型,除了指定 none 和 all 之外,还指定矩形的四个边中的每一个。用于edgesForExtendedLayout
指定应扩展视图的哪些边缘,而不考虑条形半透明度。默认情况下,此属性的值为UIRectEdgeAll
。
- extendedLayoutIncludesOpaqueBars
如果您的设计使用不透明条,请将属性
edgesForExtendedLayout
设置为NO进行优化。(默认值为NO。)extendedLayoutIncludesOpaqueBars
extendedLayoutIncludesOpaqueBars
如果您不希望自动调整滚动视图的内容插图,请设置automaticallyAdjustsScrollViewInsets
为NO。automaticallyAdjustsScrollViewInsets
(默认值为YES。)
topLayoutGuide
和bottomLayoutGuide
属性指示视图控制器视图中顶部或底部条边的位置。topLayoutGuide
如果栏应该与视图的顶部或底部重叠,您可以使用 Interface Builder 通过在底部布局指南的底部或顶部创建约束来相对于栏定位视图。(如果没有条应该与视图重叠,则底部与
topLayoutGuide
视图顶部相同,顶部与视图
bottomLayoutGuide
底部相同。)这两个属性都是在请求时延迟创建的。
请参考,苹果文档