iOS 手勢沖突

一 : view添加手勢與tableView沖突問題

** 問題: ** 在UIView界面中的部分區域添加tableView,tableViewCell能正常點擊,但是對該view添加點擊手勢,界面只識別點擊手勢,而不能正常操作tableViewCell

抽屜效果.png

解決方法:

    1. 遵守代理協議
    UIGestureRecognizerDelegate

    2. 給手勢設置代理
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(respondsToTapGesture:)];
    tap.delegate = self;
    [self.view addGestureRecognizer:tap];

    3.實現代理方法
 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    // 點擊的view的類名
    NSLog(@"%@", NSStringFromClass([touch.view class]));
    // 點擊了tableViewCell,view的類名為UITableViewCellContentView,則不接收Touch點擊事件
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
        return NO;
    }
    return  YES;
}

二 : view添加手勢和collectionView的沖突問題

想要的效果 : 既觸發didSelectItemAtIndexPath方法,又能在CollectionView自身上處理TapGesture

問題 : collectionView沒有內容視圖, 不能像上面那樣解決沖突

解決方法 :

1. 遵守代理協議
UIGestureRecognizerDelegate

2. 給手勢設置代理
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(cancelDelete)]; 
apGestureRecognizer.delegate = self;  [注意點]
 [self.collectionview addGestureRecognizer:tapGestureRecognizer];

3. self要實現UIGestureRecognizerDelegate協議,其中就有gestureRecognizer:shouldReceiveTouch:方法 
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if (touch.view != self.collectionView) {
        return NO;
    }else {
        return YES;
    }
}

借鑒 : http://bbs.csdn.net/topics/391010780

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 首先添加UIGestureRecognizerDelegate協議,然后把 Tap手勢識別對象設置代理self,然...
    博行天下閱讀 2,438評論 0 1
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,229評論 4 61
  • 今天有人問我collectionView 的左滑和 cell中的左滑手勢沖突怎么處理 目前有兩個處理方式 適用于 ...
    zp秋楓暮霞閱讀 1,161評論 0 4
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內容...
    i得深刻方得S閱讀 4,752評論 1 9
  • 我是兩個娃的媽媽,但我不是全職媽媽,現在休產假在家,休完產假我還是要繼續回去努力工作的,因為那里有我喜歡的同...
    多多少少的媽閱讀 1,013評論 0 0