title: UITableView cellForRowAtIndexPath is called in a wrong order
body: <p>I have a <code>UITableView</code> and a problem I am facing is that sometime <code>cellForRowAtIndexPath</code> is called in a wrong order. </p>
  
  <p>We have 6 rows and one section in a table. <code>cellForRowAtIndexPath</code> is called in the order <code>(0, 2), (0, 3), (0,4), (0,5)</code>. So when the table loads, it shows the <strong>3rd row</strong> at the top. Now when I scroll down, <code>cellForRowAtIndexPath</code> is again called with <code>(0,1)</code> and <code>(0,0)</code> and table jumps and shows <strong>row 0</strong> at the top. </p>
  
  <p><strong>Update:</strong> it seems that heightForRowAtIndexPath delegate was implemented and was incorrectly returning zero for the every indexPath. Although removing it solved the issue, the mystery remains why it was starting indexPath at (0,2). Any logical explanation?</p>