UITableViewCell自动行高在异步调用后无法正常工作

时间:2016-05-15 03:45:51

标签: ios uitableview uitableviewautomaticdimension

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

  3. 删除给予标签的任何高度限制

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

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

  6. 多数民众赞成,它将根据您提供的字符串调整标签大小。 有关详细信息,请按照此处 https://www.sitepoint.com/self-sizing-cells-uitableview-auto-layout/ 这有一步一步的infs。