NSLayoutConstraint用于UITableViewCell内的标签

时间:2014-03-11 15:32:40

标签: ios iphone xcode autolayout

我有一个带有标签的tableViewCell。让我们说在这种情况下我不想创建一个IBOutlet。我想根据条件向标签添加约束,以便在条件为真时标签向下移动10像素。更确切地说,我想通过代码在下面的图像中实现约束。

enter image description here

我试过了

NSLayoutConstraint *myConstraint = [NSLayoutConstraint constraintWithItem:amountLabel attribute:NSLayoutAttributeTop
                                   relatedBy:NSLayoutRelationEqual toItem:cell.superview attribute:NSLayoutAttributeTop
                                   multiplier:1.0 constant:+10];
[amountLabel addConstraint:myConstraint];

但没有效果。任何帮助,将不胜感激。 :)

1 个答案:

答案 0 :(得分:1)

我认为您必须将该约束添加到superview以使其工作(始终将约束添加到最顶层视图或最近的共同祖先视图)。

我发现使用类别库可以更轻松地处理代码中的约束。我最喜欢的是Richard Turton制作的那个:https://github.com/jrturton/UIView-Autolayout

我认为你会发现使用它可以更加直观地添加约束。

示例

[amountLabel pinEdge:NSLayoutAttributeTop toEdge:NSLayoutAttributeTop ofView:superView inset:10];