UINavigationBarとUIScrollViewずれる!

iOS7にappを移行してみたら、NavigationBar分Viewが画面下にずれる現象が起こった。しかも、範囲強制している筈のScrollViewが全然効かなくなってしまった。

ひとつづつ確認してみるとView自体がNavigationBarに押し出されているわけではなく、ScrollView内のコンテンツがNavigationBar分スクロールしてしまっているようだ。たしかにscrollView.contentInsetが44pixel下がっている。むりやりこの値を0にしてみたが、アニメーション部分とあいまって妙な動きになってしまう。

どうしたもんかと更に調べてみるとありました。

UIViewControllerにautomaticallyAdjustsScrollViewInsets。これiOS7から追加された用ですが、ScrollViewのinsetを自動的にBar分調整してくれる便利(?)なもののようです。これをNOにすることで期待通りの動きに戻りました。

NavigationBarあたりは挙動が変わるものが結構あるので一個づつ潰して行くしかなさそうですね。

Avatar photo

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です