I have a UITableView with a cell that is dynamically sized to fit a UITextView inside it. Whenever a key is typed, the cell checks to see if the calculated height has increased,
Just a guess...
Save the contentOffset of the uitableview before any changes. Then set it again after.
contentOffset
CGFloat contentOffset = self.tableView.contentOffset;
and then after the changes
self.tableView.contentOffset = contentOffset;