根据大小类更改约束的乘数

Tid*_*dly 11 uikit ios autolayout size-classes

是否可以根据当前大小类给出约束不同的乘数?

我认为,对于常规尺寸类宽度,我希望屏幕尺寸的一半,我希望它的尺寸​​为屏幕尺寸的80%,以获得紧凑的尺寸类宽度.在故事板中,我可以选择将不同大小类的不同变量添加到约束常量值,但不是它的乘数值.如果相关,它是等宽宽度约束.

我没有做太多以编程方式添加约束,所以我希望它们可能是一条解决方案.任何人都可以告诉我是否有可能通过故事板或编程方式执行我正在寻找的内容?

Tid*_*dly 22

解决方案非常明显,不知道我是如何错过它的.您必须创建两个不同的约束并相应地启用/禁用它们.

我认为这是一个非常不优雅的解决方案,我真的很想,如果苹果能够做到这一点,你就可以像常量变量一样为每个大小的类定义不同的乘数.有许多约束只有一个值的约束似乎可能导致一个非常笨拙和难以维护的故事板.

如果有人知道任何更好的解决方案,或者知道为什么这样做,我仍然希望听到它.

  • 绝对同意你的意见!正如Apple已经给出了一个能够在相同约束下定义由大小类确定的不同常量的能力,它们应该对同一约束的乘数做同样的事情. (2认同)
  • @JohnD.您可以通过故事板启用/禁用约束,方法是选择约束,在检查器上滚动到底部并勾选/取消勾选框.我相信如果你需要,你也可以直接编辑代码. (2认同)
  • 对任何需要它的人做一点额外的说明:在检查器中向下滚动到“已安装”,然后单击 + 按钮添加所需的变体。仅为适当的类大小标记复选框,然后对其他约束执行相同操作。 (2认同)