更改尺寸等级时会影响约束

Posted

技术标签:

【中文标题】更改尺寸等级时会影响约束【英文标题】:Constraints are affected when changing size class 【发布时间】:2016-07-26 11:43:06 【问题描述】:

我正在为我的项目使用自动布局和大小类概念。我需要为不同的屏幕方向显示不同的布局。所以我使用了大小类的概念。

当我的大小类是 Any X Any 我对所有字段应用了约束并且当我将故事板大小类更改为 Regular X Regular 时,这会限制影响我如何阻止它们

【问题讨论】:

【参考方案1】:

选择不同的类后,你可以去属性检查器,在那里你可以看到一些属性的大小类。只需更改那里的尺寸类并更新该特定类的属性即可。

【讨论】:

【参考方案2】:

对于每个尺寸等级组合,您可以通过删除现有约束并根据需要添加新约束来定义一组全新的约束。

当您从情节提要底部的选择器中更改选定的尺寸等级时,您对约束的更改只会影响该尺寸等级组合的那些。

因此,例如,如果您将情节提要的大小类更改为 Regular X Regular,然后删除一个约束,它不会被删除,因为 ANY x ANY 组合需要它,但它会设置它作为“未安装”。同样,如果您此时添加新约束,它们将仅为Regular X Regular 而“安装”,而不是Any X Any

如果您是 Auto Layout 和 Size Classes 的新手,我强烈建议您观看相关的 WWDC 视频,例如 this one 关于 size classes 的概念,因为它们通过演示让您对什么是实际发生。如果您尝试将其拼凑在一起,那就有点雷区了!

【讨论】:

以上是关于更改尺寸等级时会影响约束的主要内容,如果未能解决你的问题,请参考以下文章

带有按钮的尺寸等级和约束

XCODE:iPhone 12 的尺寸将如何影响约束和情节提要?

为啥我的 UICollectionViewCells 在动画超级视图约束更改时会更改 alpha 值?

在启动屏幕上为不同的 iPhone(即各自的尺寸)添加不同的约束

最好在更改约束之前或之后调用 .layoutIfNeeded()

Xcode 约束问题