質問: 下記添付画像の1を実現させたいと思っています。 (Airbnbの宿泊先詳細画面のヘッダー部分みたいな感じ) ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/c837d97081e982682384264de27a2b8f.png) **コンテンツの階層** ``` View Controller ∟View ∟Scroll View ∟Content View ∟Image View ``` Storyboard上でViewControllerの「Adjust Scroll View Insets」を外して画面表示させたときは期待通りになるのですが、pullすると3のように、ContentInset.top分スクロール位置がずれてしまいます。 これを常に1の状態に戻したい場合どのような実装or調整が必要になりますでしょうか? お分かりになる肩がいらっしゃいましたらご教授いただけると助かります。
回答: 自己解決しました。 エミュレーターを試しにiPhone6s(iOS10.2)に変更したところ期待通りの動作になりました。 ただしiOS11以上のエミュレーターを使うとやはりダメでした。 いろいろ調べてみると、iOS11からUIScrollViewにcontentInsetAdjustmentBehaviorというプロパティが追加されており、この値がautomaticだと自動でcontentInsetsが調整されます(ステータスバーとナビゲーションバーの高さ合計) なのでプロパティの値をneverに変更してあげればiOS11でも期待通りの動作を実現できました。 最終的なコード ``` @IBOutlet weak var scrollView: UIScrollView! override func viewDidLoad() { super.viewDidLoad() let navBar = self.navigationController?.navigationBar navBar?.setBackgroundImage(UIImage(), for: UIBarMetrics.default) navBar?.shadowImage = UIImage() scrollView.delegate = self if #available(iOS 11.0, *) { scrollView.contentInsetAdjustmentBehavior = .never } } ```