0
私のカスタムUINavigationController
サブクラスのUINavigationBar
の高さを手動で変更しています。何らかの理由で、viewDidAppear
関数の高さを変更するためのコードを追加すると、バーの高さが正しく変更されますが、viewDidLoad
にコードを入力しても何も起こりません。私がそれをやっているところは次のとおりです。UIの変更は、viewDidAppearでのみ機能しますか?
class PetNavigationVC: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
let bounds = self.navigationBar.bounds
self.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: 74)
}
}
これがなぜこのような場合に理解できますか?
:ユーザーがdemantに右何が起こっているかを見ることができるのでまたのviewDidLoadにコードを追加することは、あまりにも少し注意が必要ですviewDidLoad()では、nslayoutの制約などはまだ計算されていません。 uiviewコンポーネントはメモリにロードされ、xibまたはストーリーボードからインスタンス化されていますが、まだレイアウトされていません。 – onnoweb