【发布时间】:2019-12-27 14:13:00
【问题描述】:
我发现UIScreen.main.bounds 真的很难掌握。它们不一致,它们的值似乎不能反映设备。它们不是静态的,而是在设备旋转时发生变化,这确实令人困惑,而且这些值通常与您期望的相反。
例如:
纵向模式
print("Portrait", " width: ", UIScreen.main.bounds.size.width, " height: ", UIScreen.main.bounds.size.height)
给了
Portrait width: 1024.0 height: 768.0
如果我错了,请纠正我,但宽度不应该小于 iPad Pro 模拟器上的高度吗?
横向模式也令人困惑。
print("landscape", " width: ", UIScreen.main.bounds.size.width, " height: ", UIScreen.main.bounds.size.height)
给了
landscape width: 768.0 height: 1024.0
这意味着 1.UIScreen.main.bounds 不是静态的,而是随着屏幕方向的变化而变化 2.宽度仍然小于高度。
我不明白。有没有办法获得屏幕尺寸的静态表示并且有意义?
编辑
另一个奇怪的现象是,如果我在viewDidLoad 中打印,UIScreen.main.bounds.height 会给出1024。但是如果我翻转方向然后回到原来的样子,然后重新启动模拟器,同样的打印会给出 768。为什么哦为什么。这太奇怪了。
【问题讨论】:
标签: swift size screen-orientation uiscreen