【发布时间】:2018-06-30 03:03:15
【问题描述】:
我不知道发生了什么:对于每个模拟器,甚至对于我的 iPhoneX,UIScreen.main.bounds 都是 (0.0, 0.0, 320.0, 480.0)。
这是我在AppDelegate 中输入的内容
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow()
let vc = LoginViewController()
let navigationController = UINavigationController(rootViewController: vc)
self.window?.rootViewController = navigationController
self.window!.makeKeyAndVisible()
navigationController.setNavigationBarHidden(true, animated: false)
return true
}
我多年来一直这样做,但突然间它不起作用了,尤其是在那个应用程序上。怎么回事?
编辑:这是结果
解决方案:不要删除 LaunchScreen.storyboard,UIScreen.main 会以此为基础……
【问题讨论】:
-
首先你应该设计你的UI,让它不关心实际尺寸,让它适应不同的尺寸而不知道这些尺寸。说了这么多,什么是绿化区?它是视图控制器视图和图像的大小还是其他什么?
-
不,您应该首先让您的 uiwindow 具有正确的边界。克莱门斯有正确的答案。
-
你永远不需要直接设置你的根 UIWindow 的边界。
-
我没说我想设置那些……
-
您应该能够设计一个完整的应用程序,而无需关心物理 UIScreen 的大小。现在有些情况您可能需要知道,但它们很少见。
标签: ios swift xcode appdelegate