我有一个带有标签的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];


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

最佳答案

我认为您必须将该约束添加到超级视图才能使其起作用(始终将约束添加到最顶层的视图或最近的公共祖先视图)。

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

我认为您会发现使用此约束会更加直观。



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

关于ios - NSTableConstraint用于UITableViewCell中的uilabel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22330127/

10-10 08:43