2012-04-17 23 views
6

tôi muốn thêm vào UIViewController tôi:Hai UITapGestureRecognizer ở trên UIView

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; 
tapGesture.numberOfTapsRequired = 2; 
[self.view addGestureRecognizer:tapGesture]; 
[tapGesture release]; 

UITapGestureRecognizer *tapGesture2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture2:)]; 
tapGesture2.numberOfTapsRequired = 1; 
[self.view addGestureRecognizer:tapGesture2]; 
[tapGesture2 release]; 

vấn đề là nếu vòi nước sử dụng gấp đôi so với hai phương pháp này được gọi là, và tôi muốn điều đó nếu người dùng làm chạm đúp chỉ là người đầu tiên (handleTapGesture) sẽ được gọi và nếu ông làm cho một vòi nước nó sẽ chỉ gọi thứ hai (handleTapGesture2)

Trả lời

10

sử dụng này ..

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture)]; 
tapGesture.numberOfTapsRequired = 2; 
[self.view addGestureRecognizer:tapGesture]; 
[tapGesture release]; 

UITapGestureRecognizer *tapGesture2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture2)]; 
tapGesture2.numberOfTapsRequired = 1; 

[tapGesture2 requireGestureRecognizerToFail: tapGesture]; 

[self.view addGestureRecognizer:tapGesture2]; 
[tapGesture2 release]; 
+0

thx cho sự giúp đỡ, tôi có một vấn đề khác mà tôi có các nút trên UIViewController và khi tôi sử dụng mã của bạn các nút gọi phương thức này để thay thế cho phương pháp nút, bất kỳ ý tưởng tại sao ? – MTA

+0

sử dụng delegate này - (BOOL) gestureRecognizer: (UITapGestureRecognizer *) gestureRecognizer shouldReceiveTouch: (UITouch *) touch { \t if ((touch.view == YourButton)) { trở NO; } trả lại CÓ; } – userar

+0

bạn có kiểm tra mã này không ?? – userar

1

bạn có thể sử dụng mã i đăng trên here trong này phương pháp requireGestureRecognizerToFail: được sử dụng trong viewcontroller.m này sẽ giải quyết vấn đề của bạn

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