3
iPhone Xのビューを調整する必要がありますが、safeAreaInsetsがいつ初期化されるかはわかりません。文書によると、いつUIEdgeInsets safeAreaInsetsを呼び出すことができますか?
ビューが現在のビュー階層にインストールされていない、または はまだ画面上に表示でない場合、このプロパティのエッジインセットが0
ている私はと思うだろうviewDidLoadが呼び出されると、値が設定されますが、そうではありません。私はviewDidLayoutSubviewsが呼び出されたときに値を取得できますが、それは遅すぎるようで、とにかく正しい値を返しません。
どのようにsafeAreaInsetsプロパティを私に使用するか説明できますか?
'viewDidLoad'を呼び出すと、ビューはまだビュー階層にインストールされていません。インセットがトップ/ボトムレイアウトガイドのようなものであれば、レイアウト中に設定されている可能性があります。つまり、viewDidLayoutSubviewsが正しい時刻でなければなりません(ビューコントローラの直接ビューの場合、サブビューはまだレイアウトされていません'viewDidLayoutSubviews'が呼び出されます)。 –
'viewSafeAreaInsetsDidChange'を実装することで、いつ設定されているかを知ることができます。 – Joey