title: Is there a way to update the height of a single UITableViewCell, without recalculating the height for every cell?
body: <p>I have a UITableView with a few different sections. One section contains cells that will resize as a user types text into a UITextView. Another section contains cells that render HTML content, for which calculating the height is relatively expensive.</p>
  
  <p>Right now when the user types into the UITextView, in order to get the table view to update the height of the cell, I call</p>
  
  <pre><code>[self.tableView beginUpdates];
  [self.tableView endUpdates];
  </code></pre>
  
  <p>However, this causes the table to recalculate the height of <strong>every</strong> cell in the table, when I really only need to update the <strong>single</strong> cell that was typed into. Not only that, but instead of recalculating the estimated height using <code>tableView:estimatedHeightForRowAtIndexPath:</code>, it calls <code>tableView:heightForRowAtIndexPath:</code> for every cell, even those not being displayed.</p>
  
  <p>Is there any way to ask the table view to update just the height of a single cell, without doing all of this unnecessary work?</p>
  
  <p><strong>Update</strong></p>
  
  <p>I'm still looking for a solution to this. As suggested, I've tried using <code>reloadRowsAtIndexPaths:</code>, but it doesn't look like this will work. Calling <code>reloadRowsAtIndexPaths:</code> with even a single row will still cause <code>heightForRowAtIndexPath:</code> to be called for every row, even though <code>cellForRowAtIndexPath:</code> will only be called for the row you requested. In fact, it looks like any time a row is inserted, deleted, or reloaded, <code>heightForRowAtIndexPath:</code> is called for every row in the table cell.</p>
  
  <p>I've also tried putting code in <code>willDisplayCell:forRowAtIndexPath:</code> to calculate the height just before a cell is going to appear. In order for this to work, I would need to force the table view to re-request the height for the row after I do the calculation. Unfortunately, calling <code>[self.tableView beginUpdates]; [self.tableView endUpdates];</code> from <code>willDisplayCell:forRowAtIndexPath:</code> causes an index out of bounds exception deep in UITableView's internal code. I guess they don't expect us to do this.</p>
  
  <p>I can't help but feel like it's a bug in the SDK that in response to <code>[self.tableView endUpdates]</code> it doesn't call <code>estimatedHeightForRowAtIndexPath:</code> for cells that aren't visible, but I'm still trying to find some kind of workaround. Any help is appreciated.</p>