Ios iPhone应用程序的布局采用始于多年前

Ios iPhone应用程序的布局采用始于多年前,ios,iphone-x,Ios,Iphone X,我在2011年左右创建了一个名为BzCalendar的应用程序。 所以有了Objective-C,没有故事板。 我正在用故事板转换成Swift,还没有完成 我的应用程序是一个日历应用程序,具有每日、每周和每月视图。 应用程序的顶级配置。 当我运行iPhoneX模拟器时,顶部和底部的布局并不是苹果想要的。 起初我认为这与应用程序以编程方式设置视图的框架有关。 然而,这个问题似乎是基于我的应用程序总是调整宽度为“320”的视图内容这一事实 我想当iPhone5左右出现时,iOS会将视图转换为320宽

我在2011年左右创建了一个名为BzCalendar的应用程序。 所以有了Objective-C,没有故事板。 我正在用故事板转换成Swift,还没有完成

我的应用程序是一个日历应用程序,具有每日、每周和每月视图。 应用程序的顶级配置。 当我运行iPhoneX模拟器时,顶部和底部的布局并不是苹果想要的。 起初我认为这与应用程序以编程方式设置视图的框架有关。 然而,这个问题似乎是基于我的应用程序总是调整宽度为“320”的视图内容这一事实 我想当iPhone5左右出现时,iOS会将视图转换为320宽度,以拯救不支持更新屏幕尺寸的应用程序

我用代码检查尺寸:

override func viewDidLayoutSubviews() {
    print("frame: ", self.view.frame)
    print("safeAreaInsets", self.view.safeAreaInsets)
}
结果是: 帧:(0.0,0.0,320.0,485.0) 安全区域插图导向插图(顶部:44.0,左侧:0.0,底部:0.0,右侧:0.0)

320! 现在尝试使用iPhone8运行 帧:(0.0、0.0、320.0、519.0) 安全区域插图导向插图(顶部:20.0,左侧:0.0,底部:0.0,右侧:0.0)

然后我在XCode9上创建了一个新项目,并制作了一个简单的应用程序: 超宽带控制器 -UIViewController 使用上述相同的测试代码: 结果是: 框架:(0.0,0.0375.0812.0) 安全区域插图导向插图(顶部:44.0,左侧:0.0,底部:83.0,右侧:0.0)

有没有人曾经经历过类似的问题,并且知道如何处理? 我希望有两个步骤: 1) 更改xcode配置?使用实际屏幕大小。 2) 为iPhoneX做额外的工作

请帮帮我!

我正在用故事板转换成Swift,还没有完成 然而

要支持iPhoneX,您不需要将应用程序完全移动到故事板

1) 更改xcode配置?使用实际屏幕大小

2) 为iPhoneX做额外的工作

支持iPhoneX所需要做的就是使用故事板来启动屏幕,而不是静态图像


您可以在此处阅读有关如何执行此操作的更多信息:

您需要添加大小合适的启动映像,或者(更好)切换到启动情节提要。见@Paulw11谢谢!那很容易!它使iPhone8的画作质量也更好!