2010-04-25 8 views

Antwort

4

Wenn Sie Targeting nicht 3.2+:

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

machen müssen Danke eman! Löste mein Problem! –

2

Setzen Sie die Eigenschaft multiTouchEnabled auf YES.

0

Wenn Ihre Anforderungen es zulassen, verwenden Sie UITapGestureRecognizer. Andernfalls implementieren die folgenden UIResponder Methoden in Ihrer benutzerdefinierten 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; 

Spur überall zu sehen, wie viele Berührungen waren und ob oder nicht bewegt sie mehr als Ihre Hahn/Drag Schwelle. Sie müssen alle vier Methoden implementieren.

10

Wenn Sie 3.2 OS oder höher ausrichten können, können Sie eine UITapGestureRecognizer verwenden. Es ist wirklich einfach zu bedienen: einfach konfigurieren und an die Ansicht anhängen. Wenn die Geste ausgeführt wird, wird die Aktion des Ziels des GestenRecognizers ausgelöst.

Beispiel:

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

Dann implementieren Sie nur eine - (void) viewWasDoubleTapped:(id)sender Methode, und das wird aufgerufen werden, wenn [self view] Doppel angezapft wird.

EDIT

ich Sie gerade realisiert könnte einen einzigen Hahn über Erkennung mit zwei Fingern sprechen. Wenn das der Fall ist, können Sie

[r setNumberOfTouchesRequired:2]
tun.

Der Hauptvorteil dieses Ansatzes ist, dass Sie keine benutzerdefinierte Ansicht Unterklasse

Verwandte Themen