9
votes

Que se passe-t-il quand un UIView est ajouté à un autre UIView deux fois dans IOS?

Que se passe-t-il lorsqu'un UIView est ajouté à une autre vue deux fois dans IOS? Je crois que ça ne sera pas ajouté deux fois. Avoir quelqu'un jamais essayé?


1 commentaires

Je crois qu'il veut dire que ce qui se passe lorsque une vue est ajoutée à la même vue deux fois (c'est-à-dire appeler littéralement view.addsubview (Otherview) deux fois)


3 Réponses :


19
votes

[uIView addsubview:] Documentation

Les vues ne peuvent avoir qu'un seul superview. Si la vue a déjà un superview et que la vue n'est pas le récepteur, cette méthode supprime la précédente SuperView avant de faire le récepteur son nouveau superview.


2 commentaires

Méfiez-vous qu'il existe une différence entre un Supprimètre expliciteFromsuperView, puis ajoutez à nouveau appelant directement [UIView addsubview]. Les événements touch seront annulés dans le premier, mais pas dans cette dernière approche.


Et si cette vue est le destinataire? C'est la question. Vous ne répondez pas à la question initiale.



1
votes

Une vue ne peut avoir qu'une vue parent. Mais une vue peut avoir de nombreux sous-visions.

Lire la documentation de uIView.

Lisez spécifiquement sur addsSubview


0 commentaires

-1
votes

Peut-être que vous avez attribué un uIView deux fois, l'ancien objet a été retenu par SuperView.

Par exemple xxx

Un autre exemple, lors de la mise en oeuvre init et initwithframe méthode " < Pré> xxx


0 commentaires