Ich ändere manuell die Höhe der UINavigationBar
in meiner benutzerdefinierten UINavigationController
Unterklasse. Aus irgendeinem Grund, wenn ich den Code hinzufügen, um die Höhe in der viewDidAppear
-Funktion zu ändern, wird die Höhe des Balkens korrekt geändert, aber wenn ich versuche, den Code in die viewDidLoad
setzen passiert nichts. Hier ist, wie ich es mache:UI-Änderung funktioniert nur in 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)
}
}
Kann jemand mir helfen zu verstehen, warum dies der Fall ist?
In viewDidLoad() wurden die nslayout-Bedingungen usw. noch nicht berechnet. Die uiview-Komponenten wurden in den Speicher geladen, instanziiert von Ihrer XIB oder Ihrem Storyboard, aber sie wurden noch nicht angelegt. – onnoweb