2014-06-10 50 views
1

我使用:如何檢測UITapGestureRecognizer的點擊視圖?

​​

爲了從UITextField點擊其他地方時關閉鍵盤。

但在我看來,我有UITableView,我必須檢測點擊UITableView的行時。 由於UITapGestureRecognizer我的didSelectRowAtIndexPath函數沒有被調用。有什麼辦法來檢測點擊的對象是否是UITableViewCell?

回答

5

您可以從

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 

您檢測手勢的觸摸得到手勢的thouch事件,這樣做的邏輯像波紋管:

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    if ([touch.view isKindOfClass:[UITextFiled class]]) 
    { 
     return FALSE; 
    } 
    else 
    { 

    // here is remove keyBoard code 
     return TRUE; 
    } 
} 
+0

如果以上答案不能解決你的問題,試試這個http://stackoverflow.com/questions/15814697/uitapgesturerecognizer-tap-on-self-view-but-ignore-subviews –

0

實現此委託方法gestureRecognizerShouldBegin:,檢查並取消手勢回調哪些發生在tableview單元格(行)上並觸發tableview的委託方法。

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 
{ 
    if ([gestureRecognizer.view isKindOfClass:[UITableViewCell class]]) 
    { 
     return NO; 
    } 
    return YES 

} 
+0

這隻顯示主視圖,但不顯示子視圖。實際上這是註冊到該姿勢的視圖。 – marcelosalloum