2013-12-23 29 views
0

我在我的應用程序中創建了一個視圖,我又創建了10個視圖,如網格,並且我在十個視圖中添加了UITapGestureRecogniser,如果用戶點擊一個視圖在網格中的視圖我將調用基於它的標記值的方法,我將創建一個特定類的新視圖實例。但是,如果用戶同時點擊兩個視圖或者分數秒,那麼這種方法被稱爲兩次。它是在我的應用程序內創建問題。我需要解決方案,因爲我沒有得到任何解決方案做什麼。可以任何人知道這個句柄,請儘快幫助我。如何一次只考慮兩個視圖中的一個手勢

感謝&問候 swathi

+0

你可以是一個關於你在這個方法中做什麼的更具體一點? – santhu

+0

當調用該方法時,該方法內禁用窗口或應用程序的事件,以便它不會接收事件,直到您稍後啓用它。 – santhu

回答

0

我剛剛創建一個布爾值,多數民衆贊成在每一個被這些觀點調用的方法設置爲NO。

在方法結束時,將其設置爲YES

-(void)view1tapped{ 
     BOOL shouldRecognizeTap = enabled; 
     self.enabled = NO; 
     if (shouldRecognizeTap){ 
       // do your stuff here 
     } 
     self.enabled = YES; 
} 

-(void)view2tapped{ 
     BOOL shouldRecognizeTap = enabled; 
     self.enabled = NO; 
     if (shouldRecognizeTap){ 
       // do your stuff here 
     } 
     self.enabled = YES; 
} 

此外,在您的gestureRecognizer委託方法,我希望你檢查識別狀態這樣

-(void) handleTapGesture:(UIGestureRecognizer *) sender { 
    if (sender.state != UIGestureRecognizerStateEnded) // <--- 
     return; 

    sender.enabled = NO // (or disable all the other gesture recognizers). 
    // do your stuff here 
    sender.enabled = YES; 
} 
相關問題