首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >支持iPhone X的旧应用?

支持iPhone X的旧应用?
EN

Stack Overflow用户
提问于 2017-11-06 07:32:51
回答 1查看 948关注 0票数 1

我的旧iOS应用程序在所有iPhone版本(除了iPhone X模型)中都运行良好。我遇到了iPhone X模拟器,看到一些屏幕在iPhone X屏幕底部重叠。我的应用程序--所有的uiview控制器--都是通过编程创建的,而不是由故事板设计的。因此,在所有视图控制器中,我使用(self.view.frame)来查找其帧大小。在iPhoneX中,在故事板中有安全防护区可供设计。但是如何计算运行时的安全防护区域。在搜索谷歌时,它给出了一些样本,以找到安全防护区域,这是iOS11的支持。但我想在ios9上运行我的应用程序?我的项目中有很多控制器..。有人能告诉我做这件事最简单的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 23:36:26

将iPhone X布局问题的运行时修复添加到旧应用程序(预编故事板手动布局)(具有旧的预11部署目标)的一种可能方法是添加类似于以下内容的目标C代码:

代码语言:javascript
运行
复制
CGRect r0 = self.view.frame;
CGRect r1 = r0;
if (@available(iOS 11.0, *)) {
    r1 = self.view.safeAreaLayoutGuide.layoutFrame;     
}
if ( r1.size.height < (r0.size.height - 20.0) ) {
    // fix top and bottom view overlap outside safe area here
}

在每个UIViewController的viewWillLayoutSubviews方法中。

@available检查将使此代码在iOS 11之前的版本下安全使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47131871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档