如何禁用尺寸 class 的一个特定约束?

How to disable one specific constraint for a size class?

假设我有一个视图,其宽度是纵向 superview 的 1/2,横向是 superview 的 1/3,我想我可以为该约束设置不同的乘数,但是大小 class没有这个功能。

然后我在下面的 post 中找到了一个解决方案,它说我必须禁用和启用不同大小的约束 classes.

Changing the multiplier of a constraint based on size class

我不知道该怎么做。我只找到一种清除所有约束的方法。但我不想再次重建所有约束。我只想改变一个约束。如果我在当前大小 class 中删除该约束,它也会在其他大小 class 中删除。有什么办法可以仅针对一种特定尺寸 class?

禁用该约束

使用isActive属性.

如文档所述

The active state of the constraint. You can activate or deactivate a constraint by changing this property. Note that only active constraints affect the calculated layout. If you try to activate a constraint whose items have no common ancestor, an exception is thrown. For newly created constraints, the active property is NO by default. Activating or deactivating the constraint calls addConstraint: and removeConstraint: on the view that is the closest common ancestor of the items managed by this constraint. Use this property instead of calling addConstraint: or removeConstraint: directly

这是删除特定大小的特定约束的方法class

1.) select你需要的具体尺码class

2.) 单击要remove/add 约束的视图或用户界面元素。

3.) 该视图或 uielement 的所有约束都显示在右侧的属性检查器中。

4.) Select 您要删除的特定约束,它会在该约束上设置蓝色边框。

5.) 然后按退格键。

这将仅针对特定尺寸 class 删除它。

此约束现在显示为灰色 查看控制器。