2010-04-25 28 views

Trả lời

4

Nếu bạn không nhắm mục tiêu 3.2+:

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

Cảm ơn eman! Giải quyết vấn đề của tôi! –

2

Đặt thuộc tính multiTouchEnabled thành YES.

0

Nếu yêu cầu của bạn cho phép, hãy sử dụng UITapGestureRecognizer. Nếu không, hãy triển khai các phương pháp UIResponder sau trong UIView tùy chỉnh của bạn:

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

Theo dõi trong suốt để xem có bao nhiêu chạm và có di chuyển nhiều hơn ngưỡng chạm/kéo của bạn hay không. Bạn phải thực hiện tất cả bốn phương pháp.

10

Nếu bạn có thể nhắm mục tiêu OS 3.2 trở lên, bạn có thể sử dụng một UITapGestureRecognizer. Nó thực sự dễ sử dụng: chỉ cần cấu hình nó và đính kèm nó vào khung nhìn. Khi cử chỉ được thực hiện, nó sẽ kích hoạt hành động của mục tiêu gestureRecognizer.

Ví dụ:

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

Sau đó, bạn chỉ cần thực hiện một phương pháp - (void) viewWasDoubleTapped:(id)sender, và điều đó sẽ nhận được viện dẫn khi [self view] được đúp khai thác.

EDIT

Tôi vừa nhận ra bạn có thể đang nói về việc phát hiện một lần chạm bằng hai ngón tay. Nếu đúng như vậy, bạn có thể làm

[r setNumberOfTouchesRequired:2]
.

Ưu điểm chính của phương pháp này là bạn không phải tạo lớp con tùy chỉnh chế độ xem

Các vấn đề liên quan