Je souhaite définir une action sur la feuille d'action de telle sorte que lorsque l'utilisateur tape sur la partie supérieure de la feuille d'action, celle-ci est rejetée.
Je veux le faire parce que je ne veux pas ajouter de bouton d'annulation dans la feuille d'action. Au lieu d'un bouton d'annulation, l'utilisateur peut annuler la feuille d'action en tapant sur la vue de la zone de repos.
Une suggestion sur la façon de faire cela sur l'iPhone.
Remerciements
Réponses
Trop de publicités?// For detecting taps outside of the alert view
-(void)tapOut:(UIGestureRecognizer *)gestureRecognizer
{
CGPoint p = [gestureRecognizer locationInView:self];
if (p.y < 0)
{ // They tapped outside
[self dismissWithClickedButtonIndex:0 animated:YES];
}
}
-(void) showFromTabBar:(UITabBar *)view
{
[super showFromTabBar:view];
// Capture taps outside the bounds of this alert view
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapOut:)];
tap.cancelsTouchesInView = NO; // So that legit taps on the table bubble up to the tableview
[self.superview addGestureRecognizer:tap];
[tap release];
}
Voir ici .
Notez que cela se produit déjà sur l'iPad.
barley
Points
3302
- Capture du bouton dans la vue parentale (via UITapGestureRecognizer) ou dans le contrôleur de la vue parentale (via la surcharge de l'élément
touchesBegan:
) en fonction de votre implémentation. - Si nécessaire, saisir l'emplacement du robinet à l'aide de
[UITouch locationInView:]
ou[UITapGestureRecognizer locationInView:]
méthode. - (Si l'emplacement de la prise n'est pas trop éloigné de votre feuille d'action), annulez votre feuille d'action en appelant
[UIAction dismissWithClickedButtonIndex:animated:]
.