如何根据UILabel的高度调整UITableView的高度?

时间:2016-12-21 05:29:37

标签: ios objective-c uitableview

我有UITableView。我有一个标签。我正在关注标签:

  1. 将行数设置为零

  2. 将顶部空间设置为容器边距

  3. 将底部空间设置为容器边距

  4. UILabel的内容可能会有所不同,有时可能会有3行,有时会有10行等等。我的问题是它只显示2行。如何调整单元格的高度,以便UILabel显示整个内容。

    提前致谢。

2 个答案:

答案 0 :(得分:2)

您应该将numberoflines设置为0.提供领先和&标签或固定宽度约束的尾随空间约束以及top&底层空间限制。然后使用tableView.estimatedRowHeight = 44.0 tableView.rowHeight = UITableViewAutomaticDimension

答案 1 :(得分:0)

使用单元格设置标签的约束,如顶部前导和尾部,将标签的行数设置为零,将换行模式设置为自动换行。现在放置这两个tableView方法来动态计算单元格高度。

适用于Swift 3.0

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
} 
目标C的

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
   return UITableViewAutomaticDimension;
}

-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
   return UITableViewAutomaticDimension;
}

所以它会根据需要动态获取单元格大小。

希望这会对你有所帮助。