2013-03-15 5 views
1

tapGesture = [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector (handleTapGesture :)]; tapGesture.numberOfTapsRequired = 2; tapGesture.numberOfTouchesRequired = 1;Сенсорный счетчик и функция выполнения

[self.view addGestureRecognizer:tapGesture]; 
[tapGesture release]; 

и

- (void)handleTapGesture:(UITapGestureRecognizer *)sender { 

    if (sender.state == UIGestureRecognizerStateRecognized) { 
    // handling code 
     NSLog(@"We got double tap here"); 
     DashBoardViewController* dashboardObj = [[DashBoardViewController alloc] initWithNibName:@"DashBoardViewController" bundle:nil]; 
     [self.navigationController pushViewController:dashboardObj animated:YES]; 
} 

, что я пытаюсь сделать это, я хочу назвать 2 различных событий на одном кране и на двойное нажатие. Итак, как я могу обнаружить, когда tap == 1 и tap == 2? Двойной кран распознается в моем коде, но я не уверен, как найти и работать, когда один кран находит.

Благодаря

+1

Вы можете использовать таймер. Начните таймер, когда вы получите кран. Если таймер истекает, вы знаете, что вам нужно действовать одним нажатием. Если вы доберетесь до другого таймера до истечения срока действия таймера, вы знаете, что имеете дело с двойным нажатием. –

+0

не могли бы вы помочь мне в этом ...? – iscavengers

ответ

2

Это может дать и в SOLN

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; 
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)]; 

[doubleTap setNumberOfTapsRequired:2]; 
[singleTap setNumberOfTouchesRequired:1]; 

[self.view addGestureRecognizer:singleTap]; 
[self.view addGestureRecognizer:doubleTap]; 

- (void)handleSingleTap:(UIGestureRecognizer *)gestureRecognizer { 
// single tap action 
} 

- (void)handleDoubleTap:(UIGestureRecognizer *)gestureRecognizer { 
    // double tap action 
} 

или у вас использовать NSTimer, как Даррен указал для проверки одного прикосновения.

В методе

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
+0

Спасибо Nazik. Проблема с приведенным выше кодом заключается в том, что при обнаружении двойного крана он сначала вызывает функцию однократного нажатия, а не функцию двойного нажатия. – iscavengers

Смежные вопросы