I think I know where the problem is:
The UITableView is has the default autoresizing mask. So after rotating the device from portrait to landscape then the UITableView is getting smaller (which doesnt change the offset). If the user now turns back to portrait, then the UITableView needs to be stretched and automatically scroll to the top. To solve this problem I used a variable to registrate every "user scrolling" like
- scrollViewWillBeginDragging (registrate)
- scrollViewDidEndDecelerating (unregistrate)
- in"scrollViewDidScroll" I check wether the scrolling is coming from user or not (if it is from user save the offset value)
Finally in the method "willRotateToInterfaceOrientation" I set the temporary saved offset to the UITableView to keep it on the same position.
I hope there will be better solution, because my way to solve this, is a bit tricky.