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