Tricks for improving iPhone UITableView scrolling performance? Tricks for improving iPhone UITableView scrolling performance? ios ios

Tricks for improving iPhone UITableView scrolling performance?


  1. Cache the height of the rows (the table view can request this frequently)
  2. Create a least-recently-used cache for the images used in the table (and invalidate all the inactive entries when you receive a memory warning)
  3. Draw everything in the UITableViewCell's drawRect: if possible avoid subviews at all costs (or if you require the standard accessibility functionality, the content view's drawRect:)
  4. Make your UITableViewCell's layer opaque (same goes for the content view if you have one)
  5. Use the reusableCellIdentifier functionality as recommended by the UITableView examples/documentation
  6. Avoid gradients/complicated graphical effects that aren't pre-baked into UIImages


  1. If you are subclassingUITableViewCell, don't use a Nib,write it in code instead. It's muchfaster than loading Nib files.
  2. If you're using images, make sureyou're caching them so you don'thave to load from file more thanonce for each (if you have thememory -- you'd be surprised howmuch space images take up).
  3. Make as many elements opaque aspossible. Similarly, try not and useimages with transparency.


The developer behind Tweetie has written extensively about this and has some code that demonstrates how it was done for that app. Basically, he/she advocates one custom view per table cell, and drawing it manually (rather than subviewing with Interface Builder, among other options).

fast-scrolling-in-tweetie-with-uitableview

Also, Apple has updated its own sample code for TableView in its TableViewSuite tutorials (maybe in response to this?)

TableViewSuite