Swift-单元格表视图以及内部水平堆栈视图包含不同的文本-自动高度

时间:2018-07-16 08:00:34

标签: ios swift uitableview uistackview

我正在为iOS的应用程序快速编程,并且表格视图有问题。该表的单元格内部有一个水平stackView,其中三个标签包含不同长度的文本。我已经放置了所有约束,似乎可以自动调整单元格的高度,但是我意识到了一点:它可以根据最短的条件自动调整单元格的高度。因此,它会截断较长的一个,如您在图像中看到的。请帮忙,我不知道如何解决它,也无法在线找到解决方案。

如何根据像元组件高度设置像元高度。 image problem: at verse 8 it truncate according the shortest one.

1 个答案:

答案 0 :(得分:0)

Auto Layout Horizontal StackView中的UITableViewCell。也就是说,将前导,顶部,尾部和底部约束添加到单元格ContentView。在numberOfLines或代码中将所有UILabel中的IdentityInspector设置为0。

yourLabel.numberOfLines = 0

添加以下UITableView Delegate方法来配置像元高度。

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

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

它将自动将所有单元格的大小调整为所需的高度,这是三个标签中的最大高度,以在每个标签中显示整个文本。

使用sizeToFit()来调整标签的垂直对齐方式。要使文本垂直对齐到左上角(显然,可以通过修改标签框架-缩小标签以包含文本来完成)。

cell.labelOne.sizeToFit()
cell.labelTwo.sizeToFit()
cell.labelThree.sizeToFit()
cell.layoutIfNeeded()