3

我已成功使我的自定义 uitableviewcell 与自动尺寸一起使用。在我的自定义单元格中,我有一个标签(用于显示标题,可以是一行或多行)和一个图像视图。自动布局设置正确,我指定了估计的行高并将行高设置为自动尺寸。当我使用在 viewDidLoad 中设置的虚拟数据时,我的自定义单元格会根据 UILabel 文本动态更改高度。

但是,我必须在我的自定义 tableviewcell 类中进行 API 调用,即在 cellForRowAtIndexPath 方法中获取相应的数据以显示在我的 UILabel 和 UIImageView 中。成功获取数据后,我更新了 UI 元素。但是,在这种情况下,单元格不会动态更改高度,并且我的 UILabel 被截断为一行。

我试过调用 reloadRowsAtIndexPath 方法,但是当我滚动 tableview 时它会导致奇怪的反弹。我已经尝试了几个小时,知道如何在从 API 调用获取数据后使自动 tableview 行高工作吗?

4

1 回答 1

2

检查你是否遵循了这些事情,

  1. self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.estimatedRowHeight = 50; //将此设置为适合您的任何值。

  2. 将标签的行数设置为 0(最重要)

  3. 如果标签有任何高度限制,则删除

  4. 在 cellForRow 返回一个单元格时,尝试执行此操作

    cell.contentView.setNeedsLayout() cell.contentView.layoutIfNeeded()

就是这样,它将根据您给出的字符串调整标签的大小。有关更多信息,请遵循此 https://www.sitepoint.com/self-sizing-cells-uitableview-auto-layout/ 这一步一步的 infs。

于 2016-05-19T21:20:36.617 回答