j'ai un scrollView
auquel des vues personnalisées sont ajoutées et suppriméesen réponse à l'interaction de l'utilisateur. Je veux m'assurer que la vue du conteneur est toujours suffisamment grande pour afficher toutes les sous-vues et je souhaite détecter le moment où une vue a été ajoutée ou supprimée. J'ai essayé d'utiliser KVO:
[self.scrollView addObserver:self forKeyPath:@"subviews" options:NSKeyValueObservingOptionNew context:nil];
Mais alors qu'il n'y avait pas d'erreur, observeValueForKeyPath:...
La méthode n'est jamais appelée lorsque le nombre de sous-vues change. Que devrais-je utiliser à la place?
P.S. Je sais que je pourrais mettre le calcul de désiré contentSize
propriété directement dans les méthodesajouter / supprimer des sous-vues à scrollView, mais pour des raisons d’architecture, cette option m’est inférieure et j’aimerais préférer quelque chose comme KVO. Existe-t-il des options comme celle-ci?
Réponses:
2 pour la réponse № 1"subviews" est toujours présent lors de la création d'UIView. Essayez d'observer sur "subviews.count". Ou mieux, utilisez les API suivantes d'UIView:
- (void)didAddSubview:(UIView *)subview
Veuillez vous référer à: "Observer les modifications liées à la vue" ici.