Ich brauche ein wenig Hilfe, um die viewDidLAyoutSubviews
Methode zu verstehen und wie man es sicher verwendet.Call-Methode einmal nach viewDidLayoutSubviews
Ich muss einige meiner Subviews programmatisch vor der viewDidAppear
Methode bearbeiten. Und damit es richtig funktioniert, muss ich natürlich warten, bis die gezielten Subviews fertig sind, bevor ich sie bearbeite.
Jetzt dachte ich, das war, was die viewDidLayoutSubviews
-Methode war, aber als ich es getestet habe, fand ich heraus, dass es tatsächlich zweimal vor meiner viewDidAppear
Methode aufgerufen wurde. Ich habe versucht, meine Subviews nur beim ersten Mal viewDidLayoutSubviews
wurde aufgerufen, weil ich nur [self editMySubviews]
einmal ausführen möchte, aber dann war die gezielte Subview nicht fertig und es wurde vermasselt. Dies ist, wie ich versucht:
- (void)viewDidLayoutSubviews {
if (!myBoolean) {
[self editMySubviews];
myBoolean = YES;
}
}
Natürlich, wenn ich die if-statement
es andockt beim nächsten Mal das Verfahren entfernen genannt wird, aber ich möchte nur [self editMySubviews]
einmal aufgerufen werden.
Also meine Frage ist, wenn ich die [self editMySubviews]
Methode vor der viewDidAppear
Methode aufrufen kann und 100% sicher bin, dass alle Teilansichten bearbeitet werden können? Jetzt wird in meinem Fall die viewDidLayoutSubviews
zweimal vor viewDidAppear
aufgerufen, aber wird das immer der Fall sein? Ist es sicher, einfach [self editMySubviews]
nach dem zweiten Mal viewDidLayputSubviews
aufgerufen wird?
Was machst du in 'editMySubviews' hinzufügen? – dan
Bearbeiten Sie einige Tasteneinschränkungen gemäß seiner superView.frame.size.width, die auf verschiedenen Geräten unterschiedlich ist – Peter
Dann warum müssen Sie es nur einmal tun? Sie sollten es jedes Mal tun, wenn sich das Subview-Layout ändert, wenn sich die Superview-Größe ändert. – dan