如何在tableview单元格中设置多行标签的约束

时间:2014-09-10 11:59:21

标签: objective-c

我在自定义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个标签可能会溢出。

enter image description here

0 个答案:

没有答案