ich eine Methode alsimmer durch seltsame Verhalten von Viewcontroller-Methode sehr verwirrt
override func viewDidLayoutSubviews() {
// creating bottom line for textField
let border = CALayer()
let width = CGFloat(1.0)
border.borderColor = UIColor.whiteColor().CGColor
border.frame = CGRect(x: 0, y: emailTextField.frame.size.height - width, width: emailTextField.frame.size.width, height: emailTextField.frame.size.height)
border.borderWidth = width
emailTextField.layer.addSublayer(border)
emailTextField.layer.masksToBounds = true
}
Jetzt haben overrided was passiert ist, dass, wenn ich auf Iphone meine app laufen 6, 6+ alles funktioniert gut. Aber wenn ich den gleichen Code auf iphone5
(Simulator + echte Gerät) viewDidLayoutSubViews
läuft wird immer unendlich oft aufgerufen und meine App reagiert nicht mehr. Ich löste das Problem, indem ich eine bool Variable verwendete. Aber ich verstehe nicht, warum das passiert. Kann mir das bitte jemand erklären?
Danke :-)
eigentlich Problem ist gelöst, aber was ich nicht verstehe ist, warum die App nicht auf iPhone 6 und 6+ fest, warum nur auf dem iPhone 5? –
Ich denke, der Unterschied zwischen iOS-Versionen und RAM-Speicher Grenzen in Geräten – iSashok
@UmairAfzal Ihr Problem ist nicht gelöst. Sie verwenden eine sehr schlechte Übung, um dieses Problem zu lösen, das Blockieren der Methode ist nie die richtige Wahl. 'viewDidLayoutSubviews' dient zum Positionieren von Ansichten, nicht zum Erstellen und Hinzufügen von Ansichten. Verschieben Sie diesen Code wie oben beschrieben in viewDidLoad. Sie werden jedes Mal auf dieses Problem stoßen –