Comment tester si une sous-vue a déjà été ajoutée à une vue parent? S'il n'a pas été ajouté, je veux l'ajouter. Sinon, je veux le supprimer.
Vous pouvez utiliser la méthode UIView
isDescendantOfView
:
if mySubview.isDescendantOfView(someParentView) {
someParentView.mySubview.removeFromSuperview()
} else {
someParentView.addSubview(mySubview)
}
Vous devrez peut-être également tout entourer de if mySubview != nil
selon votre implémentation.
C'est une façon beaucoup plus propre de le faire:
if myView != nil { // Make sure the view exists
if self.view.subviews.contains(myView) {
self.myView.removeFromSuperview() // Remove it
} else {
// Do Nothing
}
}
}
for view in self.view.subviews {
if let subView = view as? YourNameView {
subView.removeFromSuperview()
break
}
}
Ici, nous avons utilisé deux vues différentes. La vue parent est la vue dans laquelle nous recherchons la vue descendante et vérifions si elle est ajoutée à la vue parent ou non.
if parentView.subviews.contains(descendantView) {
// descendant view added to the parent view.
}else{
// descendant view not added to the parent view.
}