UITableViewCell和手勢共存的問題

UITableViewCell中點擊其餘控件的點擊事件是個比較奇葩的問題,就是UITableViewCell中有多個imageView子視圖,每一個imageView都添加單擊手勢。也作了對手勢事件和UItableViewCell點擊事件的判斷,但仍是會執行手勢操做時仍是會執行UItableViewCell的點擊事件,形成手勢衝突。函數

先提一下解決UITableViewCell點擊事件和手勢共存的方法:spa

// 若爲UITableViewCellContentView(即點擊了tableViewCell),則不截獲Touch事件3d

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {代理

    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {事件

        return NO;it

    }event

    return YES;table

}class


可是,做了上述判斷後仍是有問題,所以又去想了其餘的解決辦法:方法

就是自定義一個UIImageView類,在類裏面重寫-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

}

函數,而後經過代理實現上述手勢要完成的操做。

這樣就不會觸發UITableView的didSelectedRowAtIndexpath方法。

相關文章
相關標籤/搜索