IOS自动布局中位置属性约束方程的非恒等式

Posted

技术标签:

【中文标题】IOS自动布局中位置属性约束方程的非恒等式【英文标题】:Nonidentity Multipliers of Constraint Equations for Location Attributes in IOS Auto Layout 【发布时间】:2018-04-13 08:16:59 【问题描述】:

根据Apple Auto Layout Guide: 您不能将非身份乘数(1.0 以外的值)与位置属性一起使用

如果我正确理解了所谓的非恒等乘数,那么在为 location 属性设置约束时,乘数应该始终为 1.0。但我在 Xcode 中尝试过,发现乘数可以是任何正数(整数或浮点数)。检查下面的屏幕截图以进行我的测试。

是我对Apple Guide中指定的上述规则理解错误还是我在Xcode中以错误的方式修改了乘数值?

【问题讨论】:

在设备上运行正常吗? @Malik 是的,它运行正常 那么看来他们的文档可能已经过时了。要么这样,要么它可能有一些 Apple 想要避免的极端情况 【参考方案1】:

这是 Apple 制定的规则。它只是意味着使用 size 属性,您还可以添加除 1 之外的乘数(例如 2、1.2 等),因为有时您希望 size 与相对视图相等、加倍或成比例。位置用于指定属性相对于相对视图的位置。所以,这里不需要乘数。但是您仍然可以使用它,这可能会给您带来一些奇怪的结果。除了 NotAnAttribute 之外,您也不能使用 0。

【讨论】:

以上是关于IOS自动布局中位置属性约束方程的非恒等式的主要内容,如果未能解决你的问题,请参考以下文章

相对布局。约束方程解释

[iOS]:删除和添加约束时自动布局动画更改框架位置

y 位置、高度需要约束 - 自动布局故事板

iOS:自动布局:动画后锁定新位置

从 Storyboard iOS 导出或打印自动布局约束

UICollectionViewCell 子视图的位置错误(自动布局)