我正在尝试动态调整自定义UITableViewCell
的大小以适应属性字符串的内容。这是结果:
初始化tableView时,我会执行以下操作:
self.chatsTableView.estimatedRowHeight = 72.0;
self.chatsTableView.rowHeight = UITableViewAutomaticDimension;
我还实现了以下方法:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewAutomaticDimension;
}
正如你所看到的,它正在调整我的身高(允许的较小值为72)。然而,由于某种原因,它产生了一种奇怪的效果。我正在使用故事板和自动布局。
答案 0 :(得分:1)
将其移至- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath
方法。
答案 1 :(得分:0)
您还必须将estimatedRowHeight
设置为UITableViewAutomaticDimension
。
答案 2 :(得分:0)
它应该只适用于您设置的两个属性,行高和估计的行高。 首先尝试删除委托方法。 如果在滚动时(因为一个错误)表格“跳转”一点,那么还要实现两个委托方法heightForRow和estimatedHeightForRow,并返回与您在属性中设置的相同的值,estimatedRowHeight = 72和rowHeight = UITableViewAutomaticDimension。 如果它仍然不起作用,那么我会仔细检查约束。
答案 3 :(得分:0)
适用于iOS 8 +
contentView
的底边。 dequeueReusableCellWithIdentifier:forIndexPath:
不是未指定indexpath
的较短版本。self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 50.0;
。此步骤是可选的,但有助于表格查看正确管理滚动指示器等内容。会工作:)