UIView apareció?

Me pregunto, ¿hay alguna forma de get un delegado o algo así, cuando se ha mostrado una UIView particular en la pantalla?

Pruebe estos:

 – didAddSubview: – willRemoveSubview: – willMoveToSuperview: – didMoveToSuperview – willMoveToWindow: – didMoveToWindow - viewDidAppear: 

Si está administrando la UIView través de un UIViewController , entonces puede usar el método -viewDidAppear: :

 - (void) viewDidAppear:(BOOL) animated { //do stuff... [super viewDidAppear:animated]; } 

Si administra su lógica directamente dentro de UIView, use:

 - didMoveToSuperview 

Si administra su lógica dentro de UIViewController, use:

 - viewDidAppear:(BOOL)animated 

Versión Swift Dentro de tu class de UIView solo:

 override func willMove(toWindow newWindow: UIWindow?) { super.willMove(toWindow: newWindow) if newWindow == nil { // UIView disappear } else { // UIView appear } } 

Otra forma de averiguar cuándo un control está en la pantalla es subclass la Vista o el Control y anule drawRect … Sin embargo, se llama cuando se dibuja y no solo cuando se muestra por primera vez. Entonces solo es a veces lo que quieres. Funcionó para mi caso. ¡Asegúrate de llamar a super también! =)