iOS7
苹果为了达到全屏APP的效果推出了几个关于屏幕适配的新的属性:
@property(nonatomic,assign) UIRectEdge edgesForExtendedLayout NS_AVAILABLE_IOS(7_0); // Defaults to UIRectEdgeAll
@property(nonatomic,assign) BOOL extendedLayoutIncludesOpaqueBars NS_AVAILABLE_IOS(7_0); // Defaults to NO, but bars are translucent by default on 7_0.
@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES
edgesForExtendedLayout
这个属性意思是:向边缘四周展开.它的值是一个结构体,默认值是UIRectEdgeAll
,也就是上下左右填充整个屏幕,也就是说当你的容器是UINavigationController
时,默认的布局将从UINavigationBar
的顶部开始;UIRectEdgeNone
是不要往四周边缘伸展,按照传统的非iOS7
的来展示;
extendedLayoutIncludesOpaqueBars
为NO
代表展开的时候不要包含导航条;
automaticallyAdjustsScrollViewInsets
整个属性默认为YES
,实际上底层是改变了UIScrollView
的contentInset
,如果你当前视图存在唯一一个UIScrollView
或者其子类的View
,那么他会自动设置相应的内边距,这样可以让UIScrollView
占据整个视图,又不会让导航栏遮盖,可以设置整个属性为NO
,来解决,当然也可以修改UIViewController
的edgesForExtendedLayout
属性
self.edgesForExtendedLayout = UIExtendedEdgeNone;
网友评论