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

Mak*_*tro 1 storyboard uikit ios uiscreen

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

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

和往常一样,我将其添加到applicationDidFinishLaunchingWithOptions中:

        window = UIWindow(frame: UIScreen.main.bounds
        window?.rootViewController = ViewController()
        window?.makeKeyAndVisible()
Run Code Online (Sandbox Code Playgroud)

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

(CGRect) $R12 = (origin = (x = 0, y = 0), size = (width = 320, height = 480))
Run Code Online (Sandbox Code Playgroud)

我得到以下屏幕:

在此处输入图片说明

现在,如果我在该Launch Screen File字段中添加一些内容,则在Info.plist-> Information Property List中,将Launch screen interface file base name出现一个包含键的新行,并且边界正确。边界是正确的,即使该值为空。

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

Gle*_*enn 5

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

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

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

  • 实际上,它始于第一部iPhone 5,从480的高度增加到568的高度 (2认同)