Abhängig davon, welche Art von Aktionen Sie ausführen müssen, gibt es verschiedene Techniken:
-(id)initWithFrame:(CGRect)frame
- UIViews designierter Initialisierer; Wird immer an eine UIView gesendet, um sie zu initialisieren, es sei denn, die Ansicht wird von einer Schreibfeder geladen.
-(id)initWithCoder:(NSCoder *)coder
- wird immer gesendet, um eine UIView zu initialisieren, wenn die Ansicht von einer Schreibfeder geladen wird;
-(void)awakeFromNib
- gesendet, nachdem alle Objekte in der Feder initialisiert und verbunden wurden; Nur anwendbar, wenn Sie das Objekt von einer Schreibfeder laden. du musst super anrufen;
-(void)willMoveToSuperview:(UIView *)newSuperview
- unmittelbar vor dem Hinzufügen der Ansicht als Unteransicht zu einer anderen Ansicht gesendet werden; newSuperview
kann Null sein, wenn Sie die Ansicht aus der Übersicht entfernen;
-(void)willMoveToWindow:(UIWindow *)newWindow
- unmittelbar vor dem Hinzufügen der Ansicht (oder ihrer Übersicht) zu einem Fenster gesendet werden; newWindow
kann Null sein, wenn Sie die Ansicht aus einem Fenster entfernen;
-(void)didMoveToSuperview
- sofort gesendet, nachdem die Ansicht in eine Ansichtshierarchie eingefügt wurde;
-(void)didMoveToWindow
- wird sofort gesendet, nachdem die Ansichtseigenschaft der Ansicht festgelegt wurde. - -
Grundsätzlich können Sie festlegen, dass Ihre Aktionen während der Initialisierung (1 & 2), nach dem Laden von einer Schreibfeder (3), vor dem Einfügen in eine Ansichtshierarchie (4 & 5) und danach (6 & 7) ausgeführt werden sollen.
-(void)willMoveToSuperview:(UIView *)newSuperview
war die Heilung für alle meine Probleme, vielen Dank!