iOS7以降、自動設定される暗黙のcontentInsetsについて
qiitaに書きました。
UIViewController
のautomaticallyAdjustsScrollViewInsets
プロパティが意味するものが分かる人は読まなくてもいい内容です。
iOS - UINavigationControllerと領域拡張に潜む罠 - Qiita [キータ]
端的に言えば、UINavigationController
を経由させつつ表示したUIViewController
の、view
プロパティの最初の子要素がUIScrollView
系統であるならば、領域拡張を相殺する余白をシステムが自動的に設定します。
iPhoneではデバイスの向きによってUINavigationBar
の高さが変わりますので、理解して使えば強力な機能だと思います。
ただ、現時点ではこの仕様について、公式ドキュメント内に明確な説明がないので、個人的には積極的に利用したいとは思わないですが…。
StoryBoardでこの機能が発揮されるのは、UITableViewController
を用いて、Adjust Scroll View Insets
を有効にしたときだけで、それ以外の場面では常に無効になると考えていたのですが、どうもその認識は正しくないみたい?