2013-02-21 69 views
0

爲什麼swipeRightL開火事件和tapR不是?UITapGestureRecognizer未開火

UISwipeGestureRecognizer *swipeRightL=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeLeft)]; 
swipeRightL.numberOfTouchesRequired=1; 
swipeRightL.direction=UISwipeGestureRecognizerDirectionLeft; 
[self.view addGestureRecognizer:swipeRightR]; 
[self.view addGestureRecognizer:swipeRightL]; 
UITapGestureRecognizer *tapR=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(onTap)]; 
tapR.numberOfTapsRequired=1; 
tapR.numberOfTouchesRequired=1; 
[self.view addGestureRecognizer:tapR]; 
+0

你確定它不火?你有沒有在兩個目標動作中加入一些'NSLog'跟蹤?你的觀點的佈局是什麼? – sergio 2013-02-21 22:47:56

+0

我做到了。它只是不開火。我的UIWeb子視圖超出了主視圖的界限,但我認爲這不是問題,因爲刷卡工作正常。 – Jacob 2013-02-22 15:17:48

+0

您是否在位於界限內或界外的視圖部分輕敲?或者在兩種情況下都不起作用?我正確閱讀這個:你正在添加子視圖到'UIWebView',然後添加手勢識別器... – sergio 2013-02-22 15:29:28

回答

1

這可能是你的手勢互相沖突。如果你刪除了滑動手勢,它會工作嗎?

你可能想看看這個委託回調並返回YES:

– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 
+0

添加tapR.delegate = self並在回調中返回YES後,onTap函數現在正在執行。 – Jacob 2013-02-26 20:24:31

0

「簡單的手勢識別器」的蘋果示例代碼prodives抽頭,輕掃的實例,並與所有三種類型的一個視圖內的工作旋轉手勢識別。一探究竟。示例代碼使用故事板完全配置視圖及其控制器,因此代碼有點稀疏。但是您應該能夠將您的編碼配置與Xcode的「屬性檢查器」和「連接檢查器」進行比較以確定您的差異。

0

刪除設置,如:

tapR.numberOfTaps /倒是它已經默認值爲1。

嘗試實施委託方法並檢查他們是否被解僱?

tapR.delegate = self; 

- (BOOL)gestureRecognizerShouldBegin:sender { return YES; }

您也可以提供有關意見結構的一些細節?例如,一些其他的手勢(在滾動視圖或其他)可以是你的刷卡沒有開火的原因。