I am using the estimatedRowHeight method from UITableView in iOS 7, which works perfectly for fast loading of a UITableView with 5000 rows of variable heights.
Mine was wrong because the "atScrollPosition" was set to UITableViewScrollPositionNone - change it to UITableViewScrollPositionMiddle and it should work fine