在我的应用程序中,我正在处理很多约束,在大多数情况下,动画也是如此。在某些情况下,我需要删除约束并添加新的约束。
由于我还需要支持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/