使用包装标签增加TableViewCell高度

时间:2015-11-04 20:38:41

标签: ios iphone xcode ios9 xcode7

我在自定义Labels中有以下四个TableViewCell,目前看起来像这样:

我有这个:

enter image description here enter image description here

第一个,第三个和第四个标签的宽度约束固定,最大行数设置为1.第二个Label填充标签1和3之间的水平空间。

我希望第二个Label最多包裹2行并垂直对齐到顶部,以便每个标签的第一行对齐如下:

我想要这个:

enter image description here

我已将每个标签的背景颜色设置为灰色,以便可以看到约束。

2 个答案:

答案 0 :(得分:1)

要顶部对齐UILabel,您可以将所有UILabel的边距顶部约束设置为常量,或设置顶部对齐约束。要设置顶部对齐约束,请选择标签并按住Ctrl键从标签拖动到另一个标签。从弹出窗口中选择顶部对齐方式。

要记住的一件事是,对于第二个标签,将4个边距长度设置为大约5pt,但不要像其他标签一样限制其宽度或高度。

选择第二个标签后,可在右侧实用程序面板中配置最多2行。

动态改变单元格的高度有点棘手。首先,您应该知道文本是否足够长,以将标签拉伸为2行和标签的高度。 (See Here)如果文本足够长以占用两行,则该方法将返回一个比正常情况更大的高度值。根据此高度更改,使用以下UITableViewDelegate动态更改该UITableViewCell的高度:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

希望这有帮助。

答案 1 :(得分:1)

您可以使用自定尺寸单元格来实现此目的。为了完成这项工作,请将这两行添加到UITableview

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 50

然后在Interface Builder中,在Prototype Cell中设置以下约束:

取消选中"约束边距"关于所有约束。

标签1:

  • top:10
  • left:10
  • bottom:greaterOrEqual 10
  • 宽度:60(或任何实际宽度)

标签2:

  • top:10
  • left:10
  • bottom:10

标签3:

  • top:10
  • left:10
  • bottom:greaterOrEqual 10
  • 宽度:60(或任何实际宽度)

标签4:

  • top:10
  • left:10
  • 右:10
  • bottom:greaterOrEqual 10
  • 宽度:60(或任何实际宽度)

如果设置这样的约束,当第二个标签将其文本换行到第二行时,单元格高度会自动变高。

enter image description here

enter image description here