我已成功将自定义uitableviewcell用于自动维度。在我的自定义单元格中,我有一个标签(用于显示标题,可以是一行或多行)和一个imageview。正确设置了自动布局,我指定了估计行高并将行高设置为自动尺寸。当我使用在viewDidLoad中设置的虚拟数据时,我的自定义单元格基于UILabel文本动态更改高度。
但是,我必须在我的自定义tableviewcell类中进行API调用,即在cellForRowAtIndexPath方法中获取相应的数据以显示在我的UILabel和UIImageView中。成功获取数据后,我更新了UI元素。但是,在这种情况下,单元格不会动态更改高度,我的UILabel会截断为一行。
我试过调用reloadRowsAtIndexPath方法,但是当我滚动tableview时它会导致奇怪的反弹。我已经尝试了几个小时,知道如何在从API调用中获取数据后使自动tableview行高度工作吗?
答案 0 :(得分:1)
检查你是否遵循了这些事情,
self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.estimatedRowHeight = 50; //将此值设置为适合您的任何值。
将标签的行数设置为0(最重要的)
删除给予标签的任何高度限制
,尝试执行此操作
cell.contentView.setNeedsLayout() cell.contentView.layoutIfNeeded()
多数民众赞成,它将根据您提供的字符串调整标签大小。 有关详细信息,请按照此处 https://www.sitepoint.com/self-sizing-cells-uitableview-auto-layout/ 这有一步一步的infs。