J'ai une vue personnalisée qui est une sous-classe de UIView
. J'ai ajouté des sous-couches à la vue personnalisée, mais maintenant je veux les supprimer.
J'ai essayé de faire ça:
self.layer.sublayers = nil;
Mais cela supprimera tout, y compris les sous-couches initiales de la vue.
Y'a-t-il une quelconque façon de réussir cela? Ou dois-je réinitialiser une nouvelle vue personnalisée à chaque fois?
Remarque: l'application fonctionne sous iOS 7 et supérieur.
Merci!
Gardez une référence à la sous-couche ajoutée Retirez la sous-couche de la super-couche lorsque vous n'en avez pas besoin.
Le code serait comme:
Obj C:
[thesublayer removeFromSuperlayer]
Rapide:
thesublayer.removeFromSuperlayer()
//thesublayer is the name of the layer you want to remove
Une autre façon de supprimer un calque spécifique du super calque consiste à affecter une chaîne unique dans layer.name
propriété. Que vous pourrez comparer plus tard pour l'identifier et l'enlever.
for layer in sublayers {
if layer.name == "masklayer" {
layer.removeFromSuperlayer()
}
}
Je l'ai fait en Swift 3 en utilisant popLast()
.
self.layer.sublayers?.popLast()