2011-09-06 23 views
28

Tôi đang phát triển một ứng dụng mà tôi có nhiều điều khiển trên chế độ xem nhưng tôi muốn bật chúng khi người dùng nhấn đúp vào chế độ xemMục tiêu-c: Làm cách nào để phát hiện nhấn đúp khi xem?

Bạn có thể lấy ví dụ về nhấp đúp nhưng trong thiết bị tôi muốn nắm bắt sự kiện khi nhấn đúp.

Trả lời

74

Bạn cần thêm UITapGestureRecognizer vào chế độ xem mà bạn muốn được nhấn.

Như thế này:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

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

- (void)handleTapGesture:(UITapGestureRecognizer *)sender { 
    if (sender.state == UIGestureRecognizerStateRecognized) { 
     // handling code 
    } 
} 
+5

trong trường hợp có nhiều trình nhận dạng cử chỉ, bạn có thể đảm bảo nhấn đúp vào "ưu tiên cao" bằng cách sử dụng: [self.view.tapGestureRecognizer requireGestureRecognizerToFail: self.doubleTapGestureRecognizer]; –

+2

đừng quên thêm vào giao diện riêng của lớp học của bạn ... @interface IBMYourClassName()

8

Thêm UITapGestureRecognizer vào chế độ xem, với numberOfTapsRequired = 2.

+0

là UITapGestureRecognizer một điều khiển? Nó không có trong điều khiển Thư viện – Azhar

+0

Đó là một lớp con UIGestureRecognizer. Bạn cần phải viết nó trong mã. –

+0

Tôi viết mã này với bộ chọn và UIAlert nhưng nó không hoạt động - (void) viewDidLoad { UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc] initWithTarget: tự hành động: @selector (handleTapGesture :)]; tapGesture.numberOfTapsRequired = 2; \t [tapPhát hành phiên bản]; \t } – Azhar

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