I want to create a UI similar to Apple's Messages app on the iPhone. I have a table view and a text field below it. When I select the text field, I animate the table view's contentInset as the keyboard slides up so that the content is shown above the keyboard.
I have some code that uses a pan gesture recognizer to detect when the user is scrolling down the table view and animate the keyboard down as this happens (if you see Apple's Messages app, it has the same functionality to dismiss the keyboard. You scroll down on the table view and as your finger slides past the text field the keyboard goes down with it).
This works great, but if the table view is scrolled to the top and I start changing its content inset as the keyboard slides down, the table view scrolls past the top and then snaps back to the top causing a weird jerky animation. I figure this is because changing the contentInset resets the contentOffset to the top of the table view if the table view is scrolled past the top, and this is making it act strange.
Does anyone know how to change the contentInset of a scroll view without changing its contentOffset?