Comment supprimer une sous-vue de la vue de contenu d'une cellule?
J'ai ajouté une UIWebview de la cellule d'affichage de contenu
UIWebView *webview = [UIWebView alloc]init];
[cell.contentView addSubview:webview];
Maintenant j'ai l'intention de supprimer "webview" de la cellule contentview.
Je peux faire la suite?
Méthode 1:
[webview removeFromSuperview];
Ou dois-je vraiment besoin d'une boucle sur tous les sous-vues de la contentview avant de l'enlever?
Méthode 2:
for (UIView *subview in [self.contentView subviews])
{
if ([subview isKindOfClass:[UIWebView class]])
{
[subview removeFromSuperview];
}
}
J'ai essayé la méthode 1 et il n'a pas l'air de fonctionner, je ne suis pas sûr si je suis absent quelque chose ou si la méthode 2 est la seule façon d'aller
source d'informationauteur Zhen
Vous devez vous connecter pour publier un commentaire.
Méthode 1 devrait fonctionner, mais êtes-vous sûr que la vue web que vous êtes en train de supprimer est vraiment le même que celui que vous avez ajouté? Un moyen simple de supprimer une sous-vue à partir d'un point de vue est à attribuer une étiquette:
Dans la pratique, il serait évidemment préférable d'utiliser une constante nommée comme la balise.
Vous pouvez simplement utiliser
removeFromSuperview
. Qu'entendez-vous par "ne semble pas fonctionner?" Le problème le plus probable est quewebview
estnil
au point que vous l'avez appeléremoveFromSuperview
(ou vers quelque autre point de vue). Assurez-vous qu'il pointe vers le point de vue que tu veux dire.Je crois que votre webview est nul lorsque l'essayer d'enlever de la superview. Avez-vous essayé de recharger les données de la table après la suppression de l'affichage du contenu? Dans les méthodes que tu fais la manipulation des vues? Source de données/délégué ou de la coutume IBActions?