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ę!