当前位置 : 主页 > 手机开发 > ios >

ios – 使用iPhone X的自动调整掩码迁移项目

来源:互联网 收集:自由互联 发布时间:2021-06-11
我们有一些仍在使用Autoresizing mask的遗留项目,在iOS 11和iPhone X之前一切正常.随着安全区域布局指南的引入,支持iPhone X的最佳解决方案是什么? 我们可以使用自动调整掩码转换所有接口以
我们有一些仍在使用Autoresizing mask的遗留项目,在iOS 11和iPhone X之前一切正常.随着安全区域布局指南的引入,支持iPhone X的最佳解决方案是什么?

>我们可以使用自动调整掩码转换所有接口以使用自动布局.考虑到动态添加和调整视图,这似乎是一项重大工作.
>我们继续使用自动调整遮罩,但调整界面以添加iPhone X和iOS 11的嵌入边距.

第三种选择是在需要的地方使用autolayout,并使用autoresizing离开应用程序的其余部分.从XCode 8开始,您可以混合自动调整和自动布局.对于xib或storyboard中的每个视图,您可以选择设置自动调整遮罩或自动布局约束.在视图上使用一种规则会禁用该视图的另一种规则.但你可以在另一种观点上使用另一种.此链接有更多信息: http://www.thomashanning.com/xcode-8-mixing-auto-autoresizing-masks/

如果您选择仅继续使用自动调整大小的掩码,则下面的帮助程序方法可以帮助您正确地布局视图.

statusBarHeight为您提供设备状态栏的高度. safeAreaBottomMargin为您提供iPhoneX主页按钮指示器的左下边距.

- (CGFloat) statusBarHeight {
    return UIApplication.sharedApplication.statusBarFrame.size.height;
}

- (CGFloat) safeAreaBottomMargin {
    if (@available(iOS 11.0, *)) {
        UIWindow *window = UIApplication.sharedApplication.windows.firstObject;
        return window.safeAreaLayoutGuide.owningView.frame.size.height - window.safeAreaLayoutGuide.layoutFrame.size.height - window.safeAreaLayoutGuide.layoutFrame.origin.y;
    } else {
        return 0;
    }
}
网友评论