我在自定义Tableview单元格中有4个自定义标签。 tabelview单元格的高度是固定数字。
我以编程方式设置标签的自动布局约束。
我允许标签与标签内的内容一样高(NumberOfLines = 0)。
我已正确设置宽度限制,并且我也在循环内设置了填充约束,如下所示:
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[previousLabel]-20-[customLabel]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(customLabel, previousLabel)]];
除非一个或多个标签含有太多内容并且它们溢出到下一个单元格中,否则所有内容都会正确布局。
我想以编程方式添加约束(我认为它可能是压缩阻力和内容拥抱值),以便标签停在其tableview单元格的末尾。
====
以下是我设置一些约束的代码:
for (UIView *subView in cell.contentView.subviews) {
if ([subView isKindOfClass:[AFRCustomLabel class]]) {
customLabel = (AFRCustomLabel *)subView;
if (!previousLabel) {
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[customLabel]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(customLabel)]];
} else {
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[previousLabel]-20-[customLabel]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(customLabel, previousLabel)]];
}
previousLabel = customLabel;
[cell.contentView addConstraints:constraints];
}
}
以下是标签文字溢出的屏幕截图。请记住,2个标签可能会溢出。