在開發的時候會遇到一個頁面既有點擊手勢又有tableview,那么這個時候tableview的點擊就會被點擊手勢取代,那么我們應該怎么處理呢?
首先我們先添加一個手勢:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(disMissGrantureADD:)]; [tap setNumberOfTapsRequired:1]; tap.delegate=self; [self.view addGestureRecognizer:tap];
使用手勢的代理進行解決
<UIGestureRecognizerDelegate>
#pragma mark - UIGestureRecognizerDelegate -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {//判斷如果點擊的是tableView的cell,就把手勢給關閉了 return NO;//關閉手勢 }//否則手勢存在 return YES; }
這樣問題就解決了,試一下,點擊空白和cell是不是會沖突~~~
那么點擊事件不會和那些UI控件沖突,又會和哪些控件沖突呢?(可能不全)
會沖突的:tableview
不會沖突的:button,textField
還有其他的,以后慢慢補充~~~
