2016-09-12 9 views
1

これまでに誰かがこの問題を抱えているのではないかと疑問に思っていました。プロジェクトでナビゲーションコントローラを使用していますが、最初にビューコントローラをプッシュすると、view.bounds.heightの計算結果がステータスバーを補うことに気付きました。しかし、私がプロジェクトを終了して同じプッシュをやり直すと、のview.bounds.height はステータスバーを補うことができません。例えばNavigationControllerでView.bounds.heightと異なる予想

、ステータスバーなしで実際のview.bounds.heightが400である場合:最初の負荷で

:view.bounds.height = 380(400から20)は、第2の負荷に

。 view.bounds.height = 400(私が望むもの)

毎回、view.bounds.calculationはViewDidLoadで行われます。

他のビューを設定するために計算を使用していますので、一貫性を持たせたいと思います。とにかく、計算がで行われていることを確認できますか?はステータスバーの高さを補正していませんか?

ビューコントローラのサイクルで後でビュー計算コードを入力するのが助かりますが、私は常にビュー境界計算をViewDidLoadに入れました。これが良い習慣でない場合は、私に知らせてください。

答えて

0

私はあなたがviewDidLayoutSubviewsを使うべきだと思います。ビューコントローラのビューの境界が変更されると、サブビューの位置とサイズが変更された後でこのメソッドが呼び出されます。 viewDidLayoutSubviewsでコードを移動してお知らせください。