UIScreen的主要范围不符合实际的设备屏幕尺寸

时间:2019-01-29 19:00:59

标签: ios storyboard uikit uiscreen

我想创建一个没有故事板的项目。

我已经删除了Main和LaunchScreen故事板。

像往常一样,我添加到了applicationDidFinishLaunchingWithOptions:

        window = UIWindow(frame: UIScreen.main.bounds
        window?.rootViewController = ViewController()
        window?.makeKeyAndVisible()

现在在项目设置->常规中,如果我将启动屏幕文件留空UIScreen.main.bounds

(CGRect) $R12 = (origin = (x = 0, y = 0), size = (width = 320, height = 480))

然后我得到以下屏幕:

enter image description here

现在,如果我将某些内容添加到Launch Screen File字段中,则在Info.plist->信息属性列表中,将出现一个带有键Launch screen interface file base name的新行,并且边界是正确的。即使该值为空,边界也是正确的。

为什么Launch screen interface file base name的存在会影响UIScreen的边界?

1 个答案:

答案 0 :(得分:5)

它始于iOS 8.0,当时iPhone 6 / 6plus发行了(TheFuquan用户评论说它始于iPhone 5版本)。那时,如果您想支持这种新设备,肯定会需要,因为需要,以添加适当的启动屏幕。通过支持的每个设备使用大小不同的静态图像,或者通过xib / storyboards。

现在,您已经回答了困惑。解决该问题的方法是提供适当的启动屏幕/图像。

Apple的人机界面指南(启动屏幕):https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/launch-screen/