iOS触发单细胞tableView:heightForRowAtIndexPath:

时间:2013-10-09 09:51:11

标签: ios uitableview

我有一个包含200-300个不同高度的单元格的表格+一个包含UITextView的单元格(这样的表格用于读取和发送消息)。我需要在键入文本时动态调整单元格(包含UITextView)的高度。我使用下一个代码来触发tableView:heightForRowAtIndexPath:

[tableView beginUpdates];
[tableView endUpdates];

但是这会触发所有行调用tableView:heightForRowAtIndexPath:。如果表有很多行,这会降低性能。另一种方法可能是使用UITableView reloadRowsAtIndexPaths:方法,但这会导致键盘消失(UITextView会终止第一个响应者)。

是否可以仅针对单行触发调用tableView:heightForRowAtIndexPath:,还是有其他方法可以动态调整表格单元格的大小?

1 个答案:

答案 0 :(得分:3)

要仅重新加载某些行,请使用:

NSArray *array = [NSArray arrayWithObject:indexPath]; 
[self.tableView reloadRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationNone];