主屏尺寸总是320x480?

Ali*_*sei 1 uikit ios uiscreen

我注意到一些奇怪的事情:如果我从iOS应用程序项目中删除所有启动图像/故事板,则UIScreen.main.bounds缩小到320x480,无论实际屏幕大小如何.

我的问题是:我是否需要启动图像/故事板以确保主屏幕的大小正确?

这是一个代码示例:

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let screenBounds = UIScreen.main.bounds
    print(String(describing: screenBounds)) // Prints "(0.0, 0.0, 320.0, 480.0)"

    window = UIWindow(frame:screenBounds)
    window!.rootViewController = MyViewController()
    window!.makeKeyAndVisible()

    return true
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的模拟器屏幕(iPhone 8 plus,iOS 11.2):

模拟器的屏幕截图

Dar*_*are 10

如果您没有任何启动图像,并且没有启动笔尖或故事板,那么您声明除了320x480(在iPhone/iPod上)之外您不支持任何屏幕尺寸.这一直是真的但是较老的Xcode Projects会自动生成一个支持4英寸屏幕的png.如果您使用的是iPhone 6或iPhone 6 Plus,这可能是不可见的,因为如果你有4英寸屏幕支持的默认图像,这些设备会缩放你的应用程序而不是信件拳击他们.

我认为信件拳击是为了确保你的用户界面不会被iPhone X的顶级破坏,并成为新的默认行为而不是缩放.

根据您支持的屏幕尺寸将启动图像或故事板添加到项目中应解决此问题