iOS 7 -- navigationController is setting the contentInset and ContentOffset of my UIScrollView

William Jockusch picture William Jockusch · Sep 20, 2013 · Viewed 54.5k times · Source

I have a UIScrollView (actually a UICollectionView, but that probably doesn't matter). When it appears in IOS 7, the navigation controller sets its contentInset and contentOffset to values I don't want. It appears to be trying to adjust for the status bar and the navigation bar. I'd greatly prefer it left them alone. I've fixed this by overriding the getter and setter methods for contentInset and contentOffset, with a flag to tell the object whether or not it should accept a set. But is there a better way?

Answer

KDaker picture KDaker · Sep 20, 2013

Try setting self.automaticallyAdjustsScrollViewInsets = NO in your main view controller.

This was introduced in iOS 7 so you might want to wrap that with an iOS version check, if you are supporting iOS 6 and below.


Update

If you are using storyboards, you can do this in the Interface Builder as well as by checking 'Adjust Scroll View Insets' for your selected controller.

enter image description here