2016-08-03 7 views
0


この質問は特定の問題ではなく、一般的なコーディングに関する質問です。
これまではviewDidLayoutSubviewsを使用して、新しいcontentInsetをUIScrollViewsに設定しました。理由は簡単です。viewDidLayoutSubviewsself.topLayoutGuide.lengthが正しく設定されています。回転する。

今日は私が疑問に思ったのは:
contentInsetviewWillLayoutSubviewsに設定しないのはなぜですか?

UIScrollViewをレイアウトする前にcontentInsetを設定する方がよいでしょうか?このようにすると、たとえば自動スクロールがうまく動作しますか?

たぶん私はこれをすべて忘れているかもしれません。

あなたはこれについてどう思いますか?UIScrollView設定内容viewWillLayoutSubviewsまたはviewDidLayoutSubviews

答えて

1

ビューコントローラ内にself.automaticallyAdjustsScrollViewInsets = YESを設定してシステムで処理させたり、カスタムインセットを必要とすることはできますか?私はそれをしようとせず確実に知ることは困難ですが、それは、違いがわからないんだけど

EDIT

。インセットを調整しているだけなので、実際にレイアウトパスの前後に設定されているかどうかは重要です。制約が変更されたり、別のレイアウトパスがトリガーされたりしないためです。ローテーションのスクロールに関する特定の問題に気づいていない限り、あまり心配する必要はありません。

+0

私はそうすることができます。しかし、質問は私がインセットで持っている特定の問題ではなく、一般的にカスタムインセットを設定する方法でした。カスタムの上部のインセットがある場合、たとえば'self.topLayoutGuide.length + 44'、' viewWillLayoutSubviews'または 'viewDidLayoutSubviews'に設定すると、 –

+0

という質問はあなたがautolayoutを使っていますか? –

+0

いくつかのプロジェクトではそうです。しかし、私が言ったように、私は 'contentInsets'に問題はありません。私はあなたがカスタムコンテンツを持っている場合、 'contentInsets'を設定するのが最善のところで、この問題について知りたいと尋ねました。 –

関連する問題