在我的情况下,我有一个单元格2标签(一个在另一个下面)和左边的图标。 xib文件中提到了这些元素及其约束(包括目标约束)。
如果第一个标签可见,那么这两个标签之间的约束应为“垂直间距”,值为0.
如果第一个标签被隐藏,那么约束应该是“中心y”以将标签与图标的中心对齐。
我知道如何单独进行,但如何在它们之间切换?另一个困难是所有这些元素都在单元格中,所以我应该重用它们而不是创建 - 删除。
EDITED
我希望在一个单元格中实现两种不同的情况:
已更新
我尝试使用以下代码:
[cell removeConstraint:cell.cstrSendingFileStatus];
cell.cstrSendingFileStatus = [NSLayoutConstraint constraintWithItem:cell.label2
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:cell.imgView
attribute:NSLayoutAttributeCenterY
multiplier:1
constant:0];
[cell addConstraint:cell.cstrSendingFileStatus];
第一个单元格甚至被正确绘制,但我对下一个单元格有麻烦:在控制台中有很多消息,应用程序试图破坏imageView
高度约束。
答案 0 :(得分:0)
一个简单的解决方案是在第一个标签中有一个高度约束。您可以将高度常量设置为0.而不是隐藏它。这样,第二个Label将一直扩展到第一个标签所在的顶部。
编辑:
为了完成这项工作,您应该将底部空间放置在Superview = 0或第二个标签中的某个位置。这样第二个标签固定在底部并且不会移动,它将根据第一个标签高度进行扩展。第二个标签也不应该有高度约束,只有第一个。
编辑#2:第二个标签应该左上方(到第一个标签)底部(到超级视图),没有高度