It only starts if the initialized cells are moved off the screen.
For example, let's say you have a table view that displays ten cells on the screen, but contains only 100 rows. When the view is first loaded and the table view is populated, ten cells will be initialized (hence several NSLog statements). When you start to scroll down, cells that disappear at the top of the screen are placed in the reuse queue. When new cells appearing below should be drawn, they are unloaded from the reuse queue instead of initializing new instances, thereby reducing memory usage.
This is why it is important to set the properties of your cell outside the if (cell == nil) condition.
Mic pringle
source share