I have a UITableView whose data source and delegate are switched between a couple of custom data source objects when the user touches a segmented control (think \"Top Paid\"
This worked nicely for me:
if (self.tableView.isDecelerating) { NSArray *paths = [self.tableView indexPathsForVisibleRows]; [self.tableView scrollToRowAtIndexPath:[paths objectAtIndex:0] atScrollPosition:UITableViewScrollPositionTop animated:NO]; }