/ / iOS Détecter les sous-vues ajoutées à la vue UIViewContoller - ios, objective-c, uiview, uiscrollview

Détection d'iOS sous-vues ajoutées à la vue UIViewContoller - ios, objective-c, uiview, uiscrollview

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.