2 votes

Cacher UIActionSheet lorsque l'utilisateur clique sur la vue du dessus dans l'iPhone

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

8voto

DGund Points 2458
// 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.

1voto

barley Points 3302
  1. 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.
  2. Si nécessaire, saisir l'emplacement du robinet à l'aide de [UITouch locationInView:] ou [UITapGestureRecognizer locationInView:] méthode.
  3. (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:] .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X