Czy jest coś podobnego do viewDidLoad
z UIViewController
dla UIView
??? Muszę zostać powiadomiony, gdy tylko UIView
zostanie załadowany (podklasa z UIView
) i wykonam pewne czynności.
Odpowiedzi:
W zależności od tego, jakie czynności musisz wykonać, istnieje kilka technik:
-(id)initWithFrame:(CGRect)frame
- wyznaczony inicjator UIView; zawsze wysyłane do UIView w celu jego zainicjowania, chyba że widok jest ładowany z końcówki;-(id)initWithCoder:(NSCoder *)coder
- wysyłane zawsze w celu zainicjowania UIView za każdym razem, gdy widok jest ładowany z końcówki;-(void)awakeFromNib
- wysyłane po zainicjowaniu i połączeniu wszystkich obiektów w stalówce; ma zastosowanie tylko wtedy, gdy ładujesz obiekt ze stalówki; musisz zadzwonić super;-(void)willMoveToSuperview:(UIView *)newSuperview
- wysyłane bezpośrednio przed dodaniem widoku jako podwidoku do innego widoku; newSuperview
może być zerowy, gdy usuniesz widok z jego nadzoru;-(void)willMoveToWindow:(UIWindow *)newWindow
- wysyłane bezpośrednio przed dodaniem widoku (lub jego nadzoru) do okna; newWindow
może być zerowy, gdy usuniesz widok z okna;-(void)didMoveToSuperview
- wysyłane natychmiast po wstawieniu widoku do hierarchii widoków;-(void)didMoveToWindow
- wysyłany natychmiast po tym, jak widok uzyska ustawioną właściwość okna. -Zasadniczo możesz wybrać wykonanie akcji podczas inicjalizacji (1 i 2), po załadowaniu z końcówki (3), przed wstawieniem do hierarchii widoków (4 i 5) i po tym (6 i 7).
-(void)willMoveToSuperview:(UIView *)newSuperview
był lekarstwem na wszystkie moje problemy, bardzo dziękuję!