请勿将其标记为重复。可用的线程没有提供答案。行为仅限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
答案 0 :(得分:-1)
我有一个类似的问题,错误地提取了UIScreen.main.bounds
的大小。尺寸小于物理屏幕。解决方案是将下一行添加到 info.plst :
键:
Launch screen interface file base name
类型:
String
值:
LaunchScreen
因此,请检查您的 info.plist ,看看其中是否包含此行。如果不是,则添加它。希望这可以帮助。 screen shot of info.plst