給父視圖添加手勢,但是子視圖的點擊事件失效了,怎么辦?我在寫tableView 自定義cel中顯示多張圖片 可以左右滑動 我在cell里面放了一個collectionView, 點擊tableViewCell 跳轉到詳情頁 如果點的是collectionView里的第三張圖片,則詳情頁直接滑到第三張 ,點擊其他區域 從第一張開始。
當圖片的少的時候 點擊collectionView空白區域的時候,tableViewCell的點擊代理方法不走,把collectionView的userInteractionEnabled 設置成NO 代理方法走了,但是collectionview 不能滑動了,collectionViewCell的點擊代理方法也不走了。下面是解決方法:
給collection添加手勢
//初始化手勢
UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapcollection)];
//設置代理
tap.delegate=self;
[self.imagesColl addGestureRecognizer:tap];
//遵循這個代理方法 還有其他的代理
// 看介紹 它走在 touchesBegan:withEvent:之前
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
//判斷是不是點的collectionView
if ([touch.view isKindOfClass:[UICollectionView class]]) {
//處理手勢 走到你的手勢方法里 處理你自己的邏輯
return YES;
}
//如果點擊的是cell 返回NO 會走collectionView: didSelectItemAtIndexPath:
return NO;
}