我有一个带有标签的tableViewCell。让我们说在这种情况下我不想创建一个IBOutlet。我想根据条件向标签添加约束,以便在条件为真时标签向下移动10像素。更确切地说,我想通过代码在下面的图像中实现约束。
我试过了
NSLayoutConstraint *myConstraint = [NSLayoutConstraint constraintWithItem:amountLabel attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual toItem:cell.superview attribute:NSLayoutAttributeTop
multiplier:1.0 constant:+10];
[amountLabel addConstraint:myConstraint];
但没有效果。任何帮助,将不胜感激。 :)
答案 0 :(得分:1)
我认为您必须将该约束添加到superview以使其工作(始终将约束添加到最顶层视图或最近的共同祖先视图)。
我发现使用类别库可以更轻松地处理代码中的约束。我最喜欢的是Richard Turton制作的那个:https://github.com/jrturton/UIView-Autolayout
我认为你会发现使用它可以更加直观地添加约束。
示例强>
[amountLabel pinEdge:NSLayoutAttributeTop toEdge:NSLayoutAttributeTop ofView:superView inset:10];