title: UITableView scrolling performance
body: <p>I am trying my best to profile my app using Instruments and find out where my code is expensive. The <code>[self checkVisibleCells]</code> method is called in <code>scrollViewDidScroll:(UIScrollView *)scrollView</code>. I get about two/three cells on screen, depending on their height.
  I then determine if the cell is completely visible and mark it as read. Using the answer in this thread: <a href="https://stackoverflow.com/questions/9831485/best-way-to-check-if-uitableviewcell-is-completely-visible">Best way to check if UITableViewCell is completely visible</a></p>
  
  <p>So far I can only see that <code>self.tableView.visibleCells</code> is taking a long time. Is it really THAT expensive to fetch <code>visibleCells</code>? Are there any better methods on how to do this?</p>
  
  <p>Full size screenshot here: <a href="https://www.dropbox.com/s/wt8e2uat9t81qt3/Screenshot%202014-05-06%2009.26.25.png" rel="nofollow noreferrer">https://www.dropbox.com/s/wt8e2uat9t81qt3/Screenshot%202014-05-06%2009.26.25.png</a></p>
  
  <p><img src="https://i.stack.imgur.com/IhNJO.png" alt="Time profiller"></p>