iOS7以后解决view上移的问题

来源:互联网 发布:u盘在mac上显示不出来 编辑:程序博客网 时间:2024/04/28 16:44

当你的老的 app 在 iOS 7 设备上运行时,所有ViewController 的视图都整体上移了,因为 iOS 7 把整个屏幕高度(包括状态栏和导航栏)都作为了视图控制器的有效高度。于是你的视图上移了,并和上层的状态栏交叠在一起。

你当然可以在 Xcode 中修改每个 View,将他们下移20个像素(状态栏高度)或者64个像素(状态栏+导航栏高度)。

但是苹果显然已经考虑到这个问题,他们在 iOS 7 SDK 中为 ViewController 提供了一个 edgesForExtendedLayout 新属性。如果你将这个属性设置为UIRectEdgeNone,则 viewController 的所有子视图都会自动调整,这样在 iOS 7 下看到的效果和 iOS 6 完全一样。




- (void)viewDidLoad {

    [superviewDidLoad];

    if( ([[[UIDevicecurrentDevice] systemVersion]doubleValue]>=7.0)) {

        self.edgesForExtendedLayout =UIRectEdgeNone;

        self.extendedLayoutIncludesOpaqueBars =NO;

        self.modalPresentationCapturesStatusBarAppearance =NO;

    }

}


0 0
原创粉丝点击