如何动态设置表格视图单元格的高度?

10 浏览
0 Comments

如何动态设置表格视图单元格的高度?

我现在正在使用Swift中的TableView,现在遇到了一个与TableView单元格高度有关的问题。我正在处理聊天屏幕,所以我有文本、图片。所以我在一个原型单元格里管理屏幕。

现在以下是我的高度代码

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

if msg_type == "Image" {

return 150

}else if msg_type == "Text"{

return UITableViewAutomaticDimension

}

}

所以文本单元格不像我预期的那样显示,但是我不知道我的错误在哪里,还有一件事,如果我返回`UITableViewAutomaticDimension`,文本消息就可以正常显示,但图片不行。

请帮帮我,提前谢谢。

0
0 Comments

如何动态设置UITableView单元格的高度?

问题的出现原因:

在使用UITableView时,我们有时希望单元格的高度能够根据内容的多少自动调整,以适应不同的数据展示需求。然而,默认情况下,UITableView的单元格高度是固定的,需要手动设置才能实现动态调整。

解决方法:

为了实现UITableView单元格的动态高度调整,可以按照以下步骤进行设置:

1. 在viewDidLoad方法中添加以下代码:

self.tableView.rowHeight = UITableViewAutomaticDimension;

self.tableView.estimatedRowHeight = 150.0;

这段代码的作用是告诉UITableView使用自动布局来计算单元格的高度,并设置一个估计值作为初始高度。

2. 在cellForRow方法中,添加以下代码:

cell.layoutSubviews()

cell.layoutIfNeeded()

这段代码的作用是在返回单元格之前,强制进行布局和更新,以确保单元格的约束得到正确应用。

3. 在单元格的xib文件或Storyboard中,正确地设置从上到下的约束关系,以便在复杂布局的情况下,单元格的高度可以正确计算。

4. 不需要实现heightForRowAt方法。因为我们已经通过自动布局来动态调整单元格的高度,不再需要手动计算高度。

以上就是解决UITableView单元格动态设置高度的方法。通过设置正确的约束关系和调用必要的布局方法,我们可以实现根据内容自动调整单元格高度的效果。

0