Según el tipo de acciones que deba realizar, existen varias técnicas:
-(id)initWithFrame:(CGRect)frame
- Inicializador designado de UIView; siempre se envía a una UIView para inicializarla, a menos que la vista se cargue desde una plumilla;
-(id)initWithCoder:(NSCoder *)coder
- siempre se envía para inicializar una UIView siempre que la vista se carga desde una plumilla;
-(void)awakeFromNib
- enviado después de que todos los objetos en la plumilla estén inicializados y conectados; aplicable solo si carga el objeto desde una plumilla; debes llamar super;
-(void)willMoveToSuperview:(UIView *)newSuperview
- enviado inmediatamente antes de que la vista se agregue como una subvista a otra vista; newSuperview
puede ser nulo cuando quita la vista de su supervista;
-(void)willMoveToWindow:(UIWindow *)newWindow
- enviado inmediatamente antes de que la vista (o su supervista) se agregue a una ventana; newWindow
puede ser nulo cuando quita la vista de una ventana;
-(void)didMoveToSuperview
- enviado inmediatamente después de que la vista se inserta en una jerarquía de vista;
-(void)didMoveToWindow
- enviado inmediatamente después de que la vista obtiene su propiedad de ventana establecida. -
Básicamente, puede optar por realizar sus acciones durante la inicialización (1 y 2), después de cargar desde una punta (3), antes de la inserción en una jerarquía de vista (4 y 5) y después de eso (6 y 7).
-(void)willMoveToSuperview:(UIView *)newSuperview
fue la cura a todos mis problemas, muchas gracias!