title: UITableViewCell content flickers while reloading cells individually
body: <p>I have a table view linked to a <code>NSFetchedResultController</code> (i.e. loading data and also tracking changes to data is bound to the FRC)</p>
  <p>I'm not using <code>AutoLayout</code> in my cells (due to huge performance drop it introduces in iOS 8). I'm laying out my cells' content manually in cells (using <code>-(void)layoutSubviews</code>). plus, the height of rows are calculated based on content and are cached/invalidated properly.</p>
  <p>If any condition related to my data changes, related cells get updated individually (with the whole <code>-(void)controllerWillChangeContent:...</code> through <code>-(void)controllerDidChangeContent:...</code> delegate methods implemented) the animation for row updates is: <code>UITableViewRowAnimationNone</code></p>
  <p>The problem here is that, My cells have transparent backgrounds, and I can see some visual noise (most likely the actual cell getting stretched vertically, I can't say for sure because they are really transient and short lived) during <code>[self.tableView reloadRowsAtIndexPaths:...];</code>.</p>
  <p>I have tried many things to no avail!</p>
  <p>Here are the things I have tried that doesn't work:</p>
  <ul>
  <li>Implementing <code>-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath</code>, returning the accurate value for estimated heights.</li>
  <li>setting <code>self.tableView.rowHeight=UITableViewAutomaticDimension;</code>, helps a lot but doesn't fix it.</li>
  <li>Disabling animation upon <code>[self.tableView beginUpdates];</code> and enabling after <code>[self.tableView endUpdates];</code></li>
  <li>Removing all subviews from cells' content in <code>-(void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath</code></li>
  </ul>
  <p>Things that help a little:</p>
  <ul>
  <li>Making Cells opaque (i.e. setting a background color for cells). weirdly enough, the artifacts seems to be under the actual cell content.</li>
  </ul>
  <h1>More Info</h1>
  <ul>
  <li>Most of my cells' content are nodes from <a href="https://github.com/facebook/AsyncDisplayKit" rel="noreferrer">AsyncDisplayKit</a> (ASTextNode, ASImageNode), but replacing them with their <code>UIKit</code> counterparts doesn't solve the problem.</li>
  <li>All my visual updates are happening on main thread. I always make sure of that.</li>
  <li>The problem is not ubiquitous, but exist more often than not. They seem to happen more after second cells inserted if it helps.</li>
  <li>Logging the method <code>-(void)layoutSubviews</code> in my cells shows that the cells with update condition get reloaded 3 times in a row upon each update in contrast with other cells getting updated just the once. I'm not forcing any <code>[cell layoutIfNeeded];</code> or <code>[cell setNeedsLayout];</code> anywhere.</li>
  <li>Reloading the whole table view using <code>[self.tableView reloadData];</code> is not an option for me.</li>
  </ul>
  <h1>Additional More Info</h1>
  <ul>
  <li>Making cells opaque leads to cells getting laid out just the once! weird!</li>
  </ul>
  <p>At the end, I'm sorry I can't share any actual code, because it's not a test project and the complexity of the implementations renders any code sharing futile unless comprehended as a whole.</p>
  <p>Thanks for your time.</p>