Ios UITableView动态单元格高度-单行的重新加载高度

Ios UITableView动态单元格高度-单行的重新加载高度,ios,objective-c,uitableview,ios7,ios8,Ios,Objective C,Uitableview,Ios7,Ios8,我有一个具有动态高度行的UITableView,其中许多包含UITextView。当用户开始键入其中一个textview时,我使用begin/endUpdates方法使单元格增长以适应textview内容的大小。使用此方法可以调整单元格的大小,而不会丢失键盘对textview的焦点,这是我应用程序的一个重要方面 但是,当我调用begin/endUpdates时,它会重新加载我拥有的每个单元格的高度,我想知道是否有任何方法可以在用户键入时只重新计算特定索引XPath处的单元格高度。我之所以想这样做

我有一个具有动态高度行的UITableView,其中许多包含UITextView。当用户开始键入其中一个textview时,我使用begin/endUpdates方法使单元格增长以适应textview内容的大小。使用此方法可以调整单元格的大小,而不会丢失键盘对textview的焦点,这是我应用程序的一个重要方面

但是,当我调用begin/endUpdates时,它会重新加载我拥有的每个单元格的高度,我想知道是否有任何方法可以在用户键入时只重新计算特定索引XPath处的单元格高度。我之所以想这样做,是因为其他单元格的高度计算起来很昂贵,因为它们有动态内容。我知道我可以编写一些高度缓存代码,但我想知道是否有任何方法可以只重新计算UITableView中特定单元格或一组单元格的高度,而不会丢失键盘焦点/重新加载该行的数据内容


我正在使用ios8,但将采用ios7/8解决方案。

创建nsindepath的数组。如果只有一个indexPath,请将其添加到数组中,并使用以下方法:

 [self.tableView reloadRowsAtIndexPaths:[NSArray *array] withRowAnimation:UITableViewRowAnimationAutomatic];

但我认为这种方法,也会隐藏键盘,从未尝试过。

似乎不可能只对一行执行此操作。我最终建立了一个行高缓存系统,这样至少可以更快地返回所有单元格的高度。

是的,这种方法将重新加载单元格内容并删除键盘焦点,而不仅仅是调整单元格高度。您是否完全得到了想要实现的高度?更好的办法是显示“专用编辑屏幕”。就像在Facebook上发布的一样。