Je me demande, est-il possible d'obtenir un délégué ou quelque chose, lorsqu'un UIView
particulier a été affiché à l'écran?
Essayez-les:
– didAddSubview:
– willRemoveSubview:
– willMoveToSuperview:
– didMoveToSuperview
– willMoveToWindow:
– didMoveToWindow
- viewDidAppear:
Si vous gérez votre logique directement dans UIView, utilisez:
- didMoveToSuperview
Si vous gérez votre logique dans un UIViewController, utilisez:
- viewDidAppear:(BOOL)animated
Version rapide. Dans votre classe UIView:
override func willMove(toWindow newWindow: UIWindow?) {
super.willMove(toWindow: newWindow)
if newWindow == nil {
// UIView disappear
} else {
// UIView appear
}
}
Si vous gérez le UIView
via un UIViewController
, vous pouvez utiliser le -viewDidAppear:
méthode:
- (void) viewDidAppear:(BOOL) animated {
//do stuff...
[super viewDidAppear:animated];
}
Une autre façon de savoir quand un contrôle est à l'écran est de sous-classer la vue ou le contrôle et de remplacer drawRect
...
Cependant, il est appelé lorsqu'il est dessiné et pas seulement lors de sa première présentation. Ce n'est donc que parfois ce que vous voulez. Cela a fonctionné pour mon cas. Assurez-vous également d'appeler super! =)