2010-09-03 7 views
0

est-il possible de déterminer si un obj uiview va être affiché. Imaginez: vous avez 2 uiviews dans un uiscrollview. maintenant vous allez changer de geste de la première vue à la seconde. la première vue n'est maintenant PAS dans la fenêtre. maintenant vous allez revenir à la première vue. et maintenant je veux être averti que cette vue est dans viewport, ou est réaffichée. la même chose doit être pour la deuxième vue. Je n'ai trouvé aucun rappel ou quelque chose comme ça.déterminer si uiview est affiché

+0

Vous devez être plus précis. Quel geste? Je suppose que c'est un coup. Balayez vers la gauche/droite pour faire glisser deux vues dans et hors du cadre droite? –

+0

il doit être indépendant des gestes. Si la vue est dans la fenêtre, je veux être averti. –

Répondre

0

Vous vous assurez que votre UiViewController écrase viewWillAppear: (avant que cette méthode ne soit appelée) ou viewDidAppear: (après l'appel de cette méthode).

Voir: http://developer.apple.com/iphone/library/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/viewWillAppear:

+0

que vous avez raison, mais le problème est, cette vue est dans une bibliothèque qui est livrée aux clients. et les clients ne devraient pas faire une telle dérogation. Je sais qu'il y a une possibilité de définir une classe uiviewcontroller qui va le faire et tous les uiviewcontrollers doivent en hériter, mais c'est trop pour les programmeurs d'applications. ils devraient seulement initier l'uiview et définir postioni. c'est assez. Je pense que ce n'est pas possible. –

0

Cela dépend ce que vous entendez par "switch". Si une vue ne fait que défiler hors de la zone visible de la vue défilante, mais reste attachée en tant que sous-vue, vous pouvez vérifier si les limites de votre vue chevauchent celles de la zone visible des défilement.

Vous pouvez le faire en utilisant UIScrollView Delegate méthode scrollViewDidScroll: pour mettre en œuvre une vérification des chevauchements pendant le défilement de l'utilisateur. Si toutefois votre vue est réellement supprimée du viewstack, vous pouvez sous-classer UIView et implémenter willMoveToSuperview: pour vérifier si la vue a été ajoutée à la vue défilante.

Questions connexes