约束更改无效

时间:2014-08-12 06:37:23

标签: ios objective-c uiview autolayout

我有一个观点&它的约束如下。

enter image description here

现在,当我按照以下方式更改为constaint时:

     [cell addConstraint:[NSLayoutConstraint constraintWithItem:cell.view_label 
    attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual 
    toItem:cell.view_label.superview 
attribute:NSLayoutAttributeLeading multiplier:1.0 constant:60]];

            [UIView animateWithDuration:0.2 animations:^{
                [cell.view_label updateConstraints];
                [cell.view_label.superview updateConstraints];
            }];

//无效

Wraning:

  

试试这个:(1)看看每个约束并试着弄清楚你是哪个   不要指望; (2)找到添加了不需要的约束的代码或   约束并修复它。 (注意:如果你看到了   您不理解的NSAutoresizingMaskLayoutConstraints,请参阅   到UIView属性的文档   translatesAutoresizingMaskIntoConstraints)(       “”       “”)

     

将尝试通过违反约束来恢复   

     

中断objc_exception_throw以在调试器中捕获它。该   UIView上的UIConstraintBasedLayoutDebugging类中的方法   列出来也可能有帮助。

帮我解决这个问题

提前致谢

2 个答案:

答案 0 :(得分:2)

您在那里添加约束。旧约束仍然存在,它不能满足两者,因此警告。

您需要修改现有约束的constant属性。这样做的最好方法是为它做出一个出路。

答案 1 :(得分:1)

试试这个,

由于您已经在IB中有约束,因此请在代码中更新该约束。您不需要为同一目的添加约束。将IBOutlet连接到该约束并在代码中修改其constant值。