请不要标记为重复.可用的线程没有提供答案.行为仅限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
)
Run Code Online (Sandbox Code Playgroud)
打印:
UIScreen.main.bounds.width = 414.0
self.view.frame.width = 600.0
Run Code Online (Sandbox Code Playgroud)
该视图应该是从屏幕边缘到屏幕边缘.所以我用过UIScreen.main.bounds.width.但是这个值对于实际的视图控制器大小来说太小了self.view.frame.width.
这是为什么?我错过了什么?非常感谢帮助.
物理设备.使用相同的行为UIScreen.main.bounds.width
小智 0
我也遇到了类似的问题,尺寸获取不正确UIScreen.main.bounds。尺寸小于物理屏幕。解决方案是将下一行添加到info.plst中:
钥匙:
Launch screen interface file base name
Run Code Online (Sandbox Code Playgroud)
类型:
String
Run Code Online (Sandbox Code Playgroud)
价值:
LaunchScreen
Run Code Online (Sandbox Code Playgroud)
因此,请检查您的info.plist以查看它是否包含此行。如果不是,只需添加它即可。希望这可以帮助。 info.plst 的屏幕截图
| 归档时间: |
|
| 查看次数: |
736 次 |
| 最近记录: |