我使用:如何檢測UITapGestureRecognizer的點擊視圖?
爲了從UITextField
點擊其他地方時關閉鍵盤。
但在我看來,我有UITableView,我必須檢測點擊UITableView的行時。 由於UITapGestureRecognizer
我的didSelectRowAtIndexPath
函數沒有被調用。有什麼辦法來檢測點擊的對象是否是UITableViewCell?
我使用:如何檢測UITapGestureRecognizer的點擊視圖?
爲了從UITextField
點擊其他地方時關閉鍵盤。
但在我看來,我有UITableView,我必須檢測點擊UITableView的行時。 由於UITapGestureRecognizer
我的didSelectRowAtIndexPath
函數沒有被調用。有什麼辦法來檢測點擊的對象是否是UITableViewCell?
您可以從
- (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;
}
}
實現此委託方法gestureRecognizerShouldBegin:
,檢查並取消手勢回調哪些發生在tableview單元格(行)上並觸發tableview的委託方法。
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
if ([gestureRecognizer.view isKindOfClass:[UITableViewCell class]])
{
return NO;
}
return YES
}
這隻顯示主視圖,但不顯示子視圖。實際上這是註冊到該姿勢的視圖。 – marcelosalloum
如果以上答案不能解決你的問題,試試這個http://stackoverflow.com/questions/15814697/uitapgesturerecognizer-tap-on-self-view-but-ignore-subviews –