为什么UIScreen.main.bounds反转并且不是静态的?

问题描述 投票:0回答:1

我发现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.宽度仍然小于高度。

我不明白。有没有一种方法可以获取屏幕尺寸的静态表示,并且很有意义?

EDIT另一个奇怪的现象是,如果我在UIScreen.main.bounds.height中进行打印,则1024会给出viewDidLoad。但是,如果我改变方向然后又回到原来的状态,然后重新启动模拟器,则相同的打印结果将显示为768。为什么?为什么。这太奇怪了。

swift size screen-orientation uiscreen
1个回答
0
投票

您咨询过docs on UIScreen.bounds吗?

© www.soinside.com 2019 - 2024. All rights reserved.