我有UIView
我在IB中设置了约束。现在在代码中,我想做一些动画,通过添加一些新的约束和停用旧的。首先,我添加新的约束来查看,这是非活动的,如下所示:
// camera view new constraints
self.cameraNewLeftConstraint = [NSLayoutConstraint constraintWithItem:self.cameraView
attribute:NSLayoutAttributeLeading
relatedBy:NSLayoutRelationEqual
toItem:self.smallImageContainerView
attribute:NSLayoutAttributeLeading
multiplier:1.0
constant:0];
self.cameraNewLeftConstraint.active = NO;
[self.presentationView addConstraint:self.cameraNewLeftConstraint];
但是这会在运行时生成约束警告(stnadard消息 - 将尝试破坏某些约束),我有相互冲突的约束,尽管我添加了非活动约束。我怎么能处理这个问题,这应该怎么做呢?
答案 0 :(得分:1)
视图没有非活动约束。如果向视图添加约束,则该约束将处于活动状态。
将active
属性设置为YES
的新方法会将约束添加到适当的视图中。在您的代码中,当您致电addConstraint
时,iOS会将您的约束添加到您的视图中,并将active
更改为YES
。
因此,请勿在视图上调用addConstraint
。只需创建约束,并在需要使用时将active
属性设置为YES
。