我有一个UITableView,其中包含动态更新高度的行。我有以下方法作为UITextView的每个单元格中的UITextView的委托:
-(void)textViewDidChange:(UITextView *)textView
{
[self resizeRow];
[self setNeedsDisplay];
[table beginUpdates];
[table endUpdates];
}
此方法适用于在文本添加到文本视图时更新表视图行高。当我更新单元格中的UIImageView以增加其大小时,我的问题出现了。这需要调整表格单元格高度的大小才能正常工作,但从那时起,只要调用[table begineUpdates]
[table endUpdates]
块,表视图的heightForRowAtIndexPath
就不再存在了调用。我没有收到任何错误或警告,也不知道代码中的其他位置。我的问题是,当调用heightForRowAtIndexPath
[table begineUpdates]
块时,是否应始终调用[table endUpdates]
,或者是否存在未发生这种情况的情况,如果是,那么它们是什么?
答案 0 :(得分:1)
发现问题。有一个虚假的[table endUpdates]
;在方法中隐藏调用。这显然使[table beginUpdates];
[table endUpdates];
以某种方式失去同步。现在感觉更快乐。
答案 1 :(得分:0)
此answer可能会对您有所帮助,但一般情况下heightForRowAtIndexPath
会在首次显示该单元格或调用reloadRowsAtIndexPaths:withRowAnimation
时调用indexPath
。然而,从单元格进行调用可能很尴尬,因为单元格不知道它的indexPath
,但您可以使用indexPathForCell:
调用来获取{{1}}。