在我的应用程序中,我正在处理很多约束,在大多数情况下,动画也是如此。在某些情况下,我需要删除约束并添加新的约束。

由于我还需要支持iOS 7,因此我无法使用active属性,否则这将是我的解决方案。

消除约束的方法是在removeConstraint上使用UIView方法。

是否可以创建类似的方法

constraint.remove()

这样您就不必知道哪个 View 正在处理约束?

最佳答案

我要做的是创建希望添加/删除的约束数组,并简单地使用以下内容:

@property NSMutableArray *newConstraints;

填写newConstraints
iOS7和iOS8:
[self.viewToChange addConstraints:self.newConstraints];
[self.viewToChange removeConstraints:self.newConstraints];

或仅限iOS8,请使用新机制
[NSLayoutConstraint activateConstraints:self.newConstraints];
[NSLayoutConstraint deactivateConstraints:self.newConstraints];

这样,您可以套用,删除套子并套用新套组。

如果您可以确定哪些约束是哪个,则还可以从 Storyboard 集中创建初始列表。

关于ios - 删除NSLayoutConstraint的正确方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30102086/

10-09 03:12