Wann werden die Methoden ViewWillLayoutSubviews
und ViewDidLayoutSubviews
von UIViewController aufgerufen? Welchen Status hat der Frame der Ansicht vor willLayoutSubviews
?Wann werden die ViewWillLayoutSubviews- und ViewDidLayoutSubviews-Methoden aufgerufen?
Antwort
aus der Dokumentation:
Wenn eine Grenze Änderung ist die Ansicht, die Ansicht, die die Position seiner Subviews einstellt. Ihr Ansichts-Controller kann diese Methode überschreiben, um Änderungen vorzunehmen, bevor die Ansicht ihre Untersichten ausgibt. (Link)
viewWillLayoutSubviews
wird zu jeder Zeit Ihre Ansicht Controller genannt Ansicht geändert hat seine Grenzen. Dies passiert, wenn die Ansicht geladen wird, wenn ein Rotationsereignis auftritt oder wenn die Größe eines untergeordneten Ansicht-Controllers durch seine Eltern geändert wird. (Es gibt wahrscheinlich auch andere Situationen). Wenn es etwas gibt, das Sie aktualisieren müssen, bevor diese Ansicht sich selbst definiert (und bevor Ihre Beschränkungen erneut angewendet werden), sollten Sie dies hier tun. Sie sollten im Allgemeinen nicht Update-Constraints hier, weil Update-Einschränkungen einen anderen Layout-Durchlauf verursachen können.
viewDidLayoutSubviews
wird aufgerufen, sobald alle Ihre Subviews angelegt wurden. Wenn Sie das Layout zum Beispiel manuell anpassen müssen, indem Sie Frames manuell anpassen, ist dies der richtige Ort dafür.
View Controller-Lebenszyklus kann ein wenig verwirrend sein, aber es lohnt sich zu versuchen, wirklich zu verstehen, wenn Sie viel iOS-Entwicklung tun werden. This article ist ein wirklich guter Überblick.
- 1. Wann soll super.onPause() aufgerufen werden?
- 2. Wann SQLite Bereinigungsfunktionen aufgerufen werden?
- 3. Wann WebResponse.Close() aufgerufen werden soll
- 4. Wann glEnable (GL_FRAMEBUFFER_SRGB) aufgerufen werden soll?
- 5. Wann sollte RecyclerView's holder.itemView.performClick() korrekt aufgerufen werden?
- 6. Wann würde entsorgen Methode nicht aufgerufen werden?
- 7. Wann muss setNeedsDisplay in iOS aufgerufen werden?
- 8. viewWillLayoutSubviews in Swift
- 9. Wann wird onSizeChanged() aufgerufen?
- 10. Wann wird ServiceConnection.onServiceDisconnected() aufgerufen?
- 11. Wann wird InitWithCoder aufgerufen?
- 12. Wann wird onRestoreInstanceState aufgerufen?
- 13. Wann wird Control.DestroyHandle aufgerufen?
- 14. Wann wird DbConnection.StateChange aufgerufen?
- 15. Wann wird 'drawRect' aufgerufen?
- 16. Wann wird die Methode - [UIView drawRect:] aufgerufen?
- 17. Wann wird die layoutSubviews-Methode aufgerufen?
- 18. Wann wird die Validierungsmethode in Rails aufgerufen?
- 19. Wann wird document.ready() aufgerufen?
- 20. Wann ist PHPhotoLibraryChangeObserver photoLibraryDidChange: aufgerufen?
- 21. Wann wird getPlaceholderTemplateForComplication() -Methode aufgerufen?
- 22. Wann wird Angular2 ngAfterViewInit aufgerufen?
- 23. View.onDraw() --- wann wird es aufgerufen?
- 24. Wann wurde der Zuweisungsoperator aufgerufen?
- 25. Wie kann XMLHttpRequest wissen, wann der Callback aufgerufen werden soll?
- 26. Wie weiß ein Cmdlet, wann WriteVerbose() wirklich aufgerufen werden sollte?
- 27. Wann ReleaseDesignerOutlets aufgerufen werden soll, wenn ViewDidUnload nicht existiert
- 28. Multi-Prozess mit Curl, wann muss curl_global_init aufgerufen werden?
- 29. jquery Callbacks, die mehrmals aufgerufen werden
- 30. Wann wird Move Constructor aufgerufen?
Sie erwähnten seine nicht gut zu aktualisierten Einschränkungen hier? ... Ich dachte, dies ist der beste Ort, um das zu tun –
Wird dies aufgerufen, wenn wir die Kindansichten nicht ändern, aber wir verschieben nur die x, y-Koordinaten des Rahmens? (d. h. Grenzen bleiben gleich, aber der Rahmen wurde verschoben). – mskw