2010-04-25 11 views

Respuesta

4

Si no está apuntando 3.2+:

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

Gracias eman! ¡Resolvió mi problema! –

2

Establezca la propiedad multiTouchEnabled en YES.

0

Si sus requisitos lo permiten, use UITapGestureRecognizer. De lo contrario, poner en práctica los siguientes métodos UIResponder en su UIView personalizado:

- (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; 

lo largo de la pista para ver cuántos toques hubo y si es o no se movían más que su umbral del grifo/arrastre. Debe implementar los cuatro métodos.

10

Si puede orientar OS 3.2 o superior, se puede utilizar un UITapGestureRecognizer. Es realmente fácil de usar: simplemente configúralo y adjúntalo a la vista. Cuando se realiza el gesto, activará la acción del objetivo de gestureRecognizer.

Ejemplo:

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

A continuación, sólo implementar un método - (void) viewWasDoubleTapped:(id)sender, y que obtendrá invoca cuando [self view] obtiene doble girada.

EDITAR

Me di cuenta de que podría estar hablando de la detección de un solo toque con dos dedos. Si ese es el caso, puede hacer

[r setNumberOfTouchesRequired:2]
.

La principal ventaja de este enfoque es que no es necesario crear una subclase de vista personalizada

Cuestiones relacionadas