为什么UIScreen.bounds在iOS11中不正确

时间:2017-09-29 19:19:13

标签: swift ios11

请勿将其标记为重复。可用的线程没有提供答案。行为仅限iOS11。

将项目从Xcode 8更新为Xcode 9,现在使用iOS11但仍然使用Swift 3,我有以下经验:

    print("UIScreen.main.bounds.width = \(UIScreen.main.bounds.width)")
    print("self.view.frame.width = \(self.view.frame.width)")

    let rect = CGRect(

        x: 0,
        y: 0,
        width: UIScreen.main.bounds.width,
        height: UIScreen.main.bounds.height * 0.25

    )

打印:

UIScreen.main.bounds.width = 414.0
self.view.frame.width = 600.0

视图应该是从屏幕边缘到屏幕边缘。因此我使用了UIScreen.main.bounds.width。但是该值对于self.view.frame.width的实际视图控制器大小来说太小了。

为什么?我错过了什么?非常感谢帮助。

物理设备。使用UIScreen.main.bounds.width

的行为相同

1 个答案:

答案 0 :(得分:-1)

我有一个类似的问题,错误地提取了UIScreen.main.bounds的大小。尺寸小于物理屏幕。解决方案是将下一行添加到 info.plst

键:

Launch screen interface file base name

类型:

String

值:

LaunchScreen

因此,请检查您的 info.plist ,看看其中是否包含此行。如果不是,则添加它。希望这可以帮助。 screen shot of info.plst