2011-09-06 25 views
28

Görünümde birden çok denetime sahip olduğum bir uygulama geliştiriyorum ancak kullanıcı görünümü iki kez tıklattığında onları etkinleştirmek istiyorumAmaç-c: Çift tıklama görünümü nasıl belirlenir?

Çift tıklatmayla ilgili bir örnek alabilirsiniz, ancak aygıtta, onları yakalamak istediğinizde çift ​​musluk.

cevap

74

Dokunmak istediğiniz görünüme bir UITapGestureRecognizer eklemeniz gerekir. Bunun gibi

:

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

, birden fazla hareket tanıtıcısının varlığı durumunda, aşağıdakileri kullanarak "yüksek öncelikli" bir tanesini iki kez tıklatabilirsiniz: [self.view.tapGestureRecognizer requireGestureRecognizerToFail: self.doubleTapGestureRecognizer]; –

+2

sınıfını özel arabiriminize eklemeyi unutmayın ... @interface IBMYourClassName()

8

numberOfTapsRequired = 2 ile UITapGestureRecognizer görünümüne ekleyin.

+0

UITapGestureRecognizer bir kontrolüdür? Denetim masasındaki değil Kütüphane – Azhar

+0

Bu bir UIGestureRecognizer alt sınıfıdır. Kodu yazman gerekiyor. –

+0

Bu kodu selektör ve UIAlert ile yazdım ama çalışmıyor - (void) viewDidLoad { UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer ayırma] initWithTarget: self action: @selector (handleTapGesture :)]; tapGesture.numberOfTapsRequired = 2; \t [tapGesture release]; \t } – Azhar

İlgili konular