2010-04-25 2 views

ответ

4

Если вы не нацеливание 3.2+:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    if ([touches count] == 2) { 
     //etc 
    } 
} 
+0

Спасибо eman! Решила мою проблему! –

2

Установите multiTouchEnabled на YES.

0

Если ваши требования позволяют, используйте UITapGestureRecognizer. В противном случае, реализовать следующие методы UIResponder в пользовательской UIView:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; 

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

10

Если вы можете целевой OS 3.2 или выше, вы можете использовать UITapGestureRecognizer. Он очень прост в использовании: просто настройте его и прикрепите к представлению. Когда этот жест будет выполнен, он запустит действие цели gestureRecognizer.

Пример:

UITapGestureRecognizer * r = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewWasDoubleTapped:)]; 
[r setNumberOfTapsRequired:2]; 
[[self view] addGestureRecognizer:r]; 
[r release]; 

Тогда вы просто реализовать метод - (void) viewWasDoubleTapped:(id)sender, и которые будут получать вызывается, когда [self view] получает дважды постучал.

EDIT

Я просто понял, что вы могли бы говорить об обнаружении одного крана с двумя пальцами. Если это так, вы можете сделать

[r setNumberOfTouchesRequired:2]
.

Основным преимуществом этого подхода является то, что вам не нужно создавать пользовательский вид подкласса

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