Comment gérer les cas lorsque l'utilisateur touche l'extérieur de la UIView?
J'ai un menu contextuel personnalisé dans mon application iOS. Il est UIView avec boutons. Comment gérer les cas lorsque l'utilisateur touche l'extérieur de ce point de vue? Je veux masquer le menu en ce moment.
OriginalL'auteur Siarhei Fedartsou | 2011-03-10
Vous devez vous connecter pour publier un commentaire.
Vous devez créer un personnalisé
UIButton
qui prend tout l'écran. Ensuite, ajoutez vos sous-vue sur le dessus de ce bouton. Ensuite, lorsque l'utilisateur clique en dehors de la sous-vue ils seront en appuyant sur le bouton.Par exemple, faire le bouton comme ceci:
(où
yourhidemethod:
est le nom de la méthode qui supprime votre sous-vue.) Ensuite, ajoutez vos sous-vue du dessus.Mise à jour: Il semble que vous êtes désireux de savoir comment détecter où les touches sont en vue. Voici ce que vous devez faire:
OriginalL'auteur sudo rm -rf
Le mettre en plein écran à l'affichage transparent et poignée touche.
Eh bien, vous pouvez obtenir ce que vous voulez sans toucher manuel de manipulation. Dans cette vision en plein écran, vous pouvez également ajouter un
UIButton
exemple fait avec '[UIButton buttonWithType:UIButtonTypeCustom]'. Après que tout ce que vous avez à faire pour ajouter votre contrôleur (ou ce que vous utilisez pour gérer ce menu) comme une cible pour ce bouton comme[button addTarget:self action:@selector(transparenViewTapped:) forControlEvents:UIControlEventTouchUpInside]
.J'ai demandé justement à propos de manuel de toucher la manipulation. Pourriez-vous me donner des informations ou des liens vers de la documentation sur cette question?
J'ai ajouté des informations à ma réponse. Idéalement, la première je l'ai inscrite devrait être la façon de le faire, pas besoin pour la détection de l'emplacement exact de la touche.
OriginalL'auteur hoha
Une idée est d'avoir un invisible vue(uicontrol) qui est aussi grand que l'écran, qui détient alors ce contextuel personnalisé.
OriginalL'auteur govi
Il semble que vous seriez mieux servi par la dérivation votre menu à partir de UIControl plutôt que de UIView. Qui permettrait de simplifier la manipulation tactile, et tout ce que vous avez à faire dans ce cas serait de se fixer un objectif et de l'action pour UIControlEventTouchUpOutside. La cible pourrait être le menu lui-même, et l'action se cacher ou de fermer le menu.
OriginalL'auteur Caleb