我们有一些仍在使用Autoresizing mask的遗留项目,在iOS 11和iPhone X之前一切正常.随着安全区域布局指南的引入,支持iPhone X的最佳解决方案是什么? 我们可以使用自动调整掩码转换所有接口以
>我们可以使用自动调整掩码转换所有接口以使用自动布局.考虑到动态添加和调整视图,这似乎是一项重大工作.
>我们继续使用自动调整遮罩,但调整界面以添加iPhone X和iOS 11的嵌入边距.
如果您选择仅继续使用自动调整大小的掩码,则下面的帮助程序方法可以帮助您正确地布局视图.
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;
}
}
