Xcode 自动布局约束横向方向问题,其中视图缩小到零大小

Xcode autolayout constraint landscape orientation issue where view shrinks to zero size

我在屏幕上有一个视图,它被限制在中心 x 和 y 位置。它也有一个纵横比。问题来自下一个约束。

在纵向模式下(紧凑宽度,常规高度)它有一个与 superview 成比例的宽度约束 = 0.8 并且这个约束在横向模式下被卸载。

在横向模式下,它有一个与 superview 成比例的宽度约束 = 0.4,这个约束在纵向模式下被卸载。

在情节提要中,当设备在纵向和横向之间翻转时没有问题,也没有自动布局问题,红色视图会根据约束调整大小,但在模拟设备和我的 iPhone 中我将其更改为横向视图缩小为零大小。我不明白为什么会这样。我错过了什么吗?

不同的设备有不同的大小类。

例如,iPhone 13 Pro Max 使用:

wC hR   // portrait orientation
wR hC   // landscape orientation

iPhone 8 使用:

wC hR   // portrait orientation
wC hC   // landscape orientation

请注意横向是 wC hC,而不是 wR hC

将您的“横向”变体更改为 Width: Any Height: Compact

有关设备和大小的列表,请参阅 Apple 文档 here