Supprimer toutes les sous-vues d’un UIScrollView?

Comment supprimer toutes les sousvues d’une UIScrollview?

Je pense que vous devez juste faire attention et ne pas supprimer les barres de l’indicateur de défilement.

Le code donné par Adam Ko est court et élégant, mais il peut supprimer les indicateurs de défilement horizontal et vertical.

Je fais d’habitude

 for (UIView *v in scrollView.subviews) { if (![v isKindOfClass:[UIImageView class]]) { [v removeFromSuperview]; } } 

En supplantant, vous n’avez pas ajouté d’UIImageView au défilement manuellement.

En plus de ceux de Ricardo de Cillo, dans mon cas, j’avais une vue de table avec des vues dans les sous-vues que je voulais supprimer.

 for (UIView *v in self.tableview.subviews) { if ([v isKindOfClass:[UIImageView class]]) { [v removeFromSuperview]; } } 

La suppression du! dans la commande if, et changez scrollview en self.tableview supprimé toutes les images, mais a laissé la vue du tableau intacte.

Si vous souhaitez supprimer uiimageviews dans scrollview.subviews et que vous souhaitez également conserver les indicateurs verticaux et horizontaux. Vous pouvez définir une “balise” spéciale pour identifier les vues et exclure les indicateurs verticaux et horizontaux dont les balises sont 0 par défaut.

Complétant la version concise de Swift d’une réponse précédente (Swift 3.0 prêt):

 _ = scrollView.subviews.filter { $0 is UIImageView }.map { $0.removeFromSuperview() }