web-dev-qa-db-de.com

UIView - Wie werde ich benachrichtigt, wenn die Ansicht geladen wird?

Gibt es etwas Ähnliches wie das viewDidLoad von UIViewController für ein UIView ??? Ich muss benachrichtigt werden, sobald ein UIView geladen wurde (Unterklasse von UIView), und einige Aktionen ausführen.

75
aryaxt

Abhängig davon, welche Art von Aktionen Sie ausführen müssen, gibt es verschiedene Techniken:

  1. -(id)initWithFrame:(CGRect)frame - Der von UIView festgelegte Initialisierer; Wird immer an eine UIView gesendet, um sie zu initialisieren, es sei denn, die Ansicht wird von einer Nib geladen.
  2. -(id)initWithCoder:(NSCoder *)coder - Wird immer gesendet, um eine UIView zu initialisieren, wenn die View von einer Nib geladen wird.
  3. -(void)awakeFromNib - Wird gesendet, nachdem alle Objekte in der Schreibspitze initialisiert und verbunden wurden. Dies gilt nur, wenn Sie das Objekt von einer Schreibfeder laden. du musst super anrufen;
  4. -(void)willMoveToSuperview:(UIView *)newSuperview - Wird unmittelbar vor dem Hinzufügen der Ansicht als Unteransicht zu einer anderen Ansicht gesendet. newSuperview ist möglicherweise null, wenn Sie die Ansicht aus ihrer Übersicht entfernen.
  5. -(void)willMoveToWindow:(UIWindow *)newWindow - Wird unmittelbar vor dem Hinzufügen der Ansicht (oder ihrer Übersicht) zu einem Fenster gesendet. newWindow ist möglicherweise null, wenn Sie die Ansicht aus einem Fenster entfernen.
  6. -(void)didMoveToSuperview - Wird sofort gesendet, nachdem die Ansicht in eine Ansichtshierarchie eingefügt wurde.
  7. -(void)didMoveToWindow - Wird sofort gesendet, nachdem die Fenstereigenschaft für die Ansicht festgelegt wurde. -

Grundsätzlich können Sie 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) ausführen.

250
Costique