Обнаружение двойного нажатия в UIScrollView - PullRequest
1 голос
/ 11 октября 2010

Как я могу обнаружить двойной тап в UIScrollview?

Я пытался:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
    UITouch *touch = [touches anyObject];

    if (touch.tapCount == 2) {
        // some operations here
    }
}   

Но это не обнаружение двойного касания в UIScrollView, есть ли другой способ обнаружить двойное касание?

Привет

Ответы [ 3 ]

17 голосов
/ 12 октября 2010

Если вы нацеливаетесь на 3.2+, вы можете попробовать использовать UITapGestureRecognizer

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:yourViewController action:@selector(tapGesture:)];
tap.numberOfTapsRequired = 2;
tap.numberOfTouchesRequired = 1;
[scrollView addGestureRecognizer:tap];
[tap release];

Затем вы обрабатываете нажатие в вашем контроллере вида:

- (void)tapGesture:(UIGestureRecognizer*)gesture {
    // Do something
}
6 голосов
/ 29 августа 2012

Используйте приведенный ниже код для двойного нажатия.

-(void) viewDidLoad{
    // other necessary operations
    UITapGestureRecognizer* dTap = [[UITapGestureRecognizer alloc] initWithTarget : self  action : @selector (doubleTap:)];

    [doubleTap setDelaysTouchesBegan : YES];
    dTap.numberOfTapsRequired = 2;
    dTap.numberOfTouchesRequired = 1;
    [self.view addGestureRecognizer : dTap];
    [dTap release];
}

- (void) doubleTap : (UIGestureRecognizer*) sender
{
    NSLog (@"Double tap Do operations here...");
}
2 голосов
/ 11 октября 2010
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    NSUInteger numTaps = [[touches anyObject] tapCount];
    if (numTaps== 2) {
         //some operations here
    }
}

Используйте этот код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...