gpt4 book ai didi

更改设备方向时违反 iOS 自动布局约束

转载 作者:行者123 更新时间:2023-11-28 23:34:11 25 4
gpt4 key购买 nike

我有一个为纵向模式的 iPhone 创建的自动布局布局。

当我将设备从纵向旋转到横向时,我收到一条警告,指出系统无法同时满足两个约束。在双向旋转时会发生这种情况。

enter image description here

我相信我已经找到了有问题的约束(下面突出显示),它是由 iOS 生成的,移动我的冲突约束会破坏我的布局并导致更多约束违规错误。

布局在视觉上有效;只要我忽略警告即可。

布局由两个基本部分组成,控制部分(使用占设备高度 30% 的 UIStackView)和填充剩余部分的 UITableView区域。这些嵌入在 UIStackView 中,该 View 设置为覆盖默认 UIView,并在安全区域留有边距。

enter image description here

为了在设备旋转到横向时充分利用可用的屏幕空间,控制部分应该从 UITableView 上方移到它旁边,并占据 45% 的宽度屏幕。

冲突约束在 View 的“ Controller ”部分,将其前缘设置为距父 View 前缘 16 点。

有办法解决这个问题吗?我也不喜欢,但是警告可以忽略吗?

我已经尝试将主要的 UIStackView 嵌入到 UIView 中并删除冲突的约束;但他会导致其他问题,除非我在 UIViewUIStackView 之间添加约束,然后它们会出现相同的约束冲突问题。

可以找到具有相同问题的示例项目的 repo at .

在简化布局时,我似乎无法使用 Alignment = FillDistribution = Fill EquallyUIStackView Spacing = 5(或标准间距)作为 UIStackView 上的间距。冲突中。

最佳答案

使用 Vary for Traits 时,经常会看到这些类型的约束警告。

您可以通过将 Info Stack View 上两个比例约束的 Priority 更改为 999 来消除旋转约束冲突.

当我运行您的实验应用程序时,我还在您的详细堆栈 View 上看到约束冲突...但是,它看起来像是您可能无法摆脱的内部冲突。将该堆栈 View 的 Distribution 更改为 Fill Equally 而不是 Fill Proportionally 会清除它,但这可能无法为您提供所需的确切布局.

按比例填充似乎是最容易被误解和误用的设置...我建议修改您的布局以避免这种情况...可能通过嵌入详细堆栈 View UIView 中,Distribution: Fill,并将其限制在该 UIView 中。

关于更改设备方向时违反 iOS 自动布局约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55619249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com