Gibt es etwas ähnlich wie die viewDidLoad
von UIViewController
für ein UIView
??? Ich muss benachrichtigt werden, sobald ein UIView
geladen wurde (Unterklasse von UIView
), und einige Aktionen ausführen.
Antworten:
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!