首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止“选择…”`用于UICollectionViewCell的一部分

问防止“选择…”`用于UICollectionViewCell的一部分
EN

Stack Overflow用户
提问于 2018-01-15 09:42:19
回答 2查看 612关注 0票数 2

摘要

UICollectionViewCell子类能否阻止将didSelectItemAt: indexPath发送到其某些子视图()上的UICollectionViewDelegate for taps ,但对其他子视图则是正常的?

用例

我有一个代表文章摘要的UICollectionViewCell。对于大多数文章,当它们被点击时,我们浏览以显示文章。

但是,一些文章摘要显示了内联视频预览。当视频预览被点击时,我们不应该浏览,但是当文章摘要的其他区域被点击(标题)时,我们应该浏览。

我希望文章摘要单元格能够决定是否应该将点击作为选择。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-15 09:55:07

  1. 您必须在不希望调用委托的单元格的子视图上添加tapGestureRecogniser。
  2. 当您点击这些子视图时,将调用tapGestureRecogniser选择器方法,并且手势将不会传递给委托。
票数 3
EN

Stack Overflow用户

发布于 2018-01-15 10:05:11

您需要做的是将UITapGestureRecognizer附加到视图中,并从视图中监视水龙头:

代码语言:javascript
复制
class MyViewController: UIViewController, UICollectionViewDataSource, MyCellDelegate {

    var dataSource: [Article] = []

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return dataSource.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ArticleCell", for: indexPath) as! MyCell
        cell.article = dataSource[indexPath.row]
        cell.delegate = self
        return cell
    }

    func articleDidTap(_ article: Article) {
        // do what you need
    }

}



// your data model
struct Article {}


protocol MyCellDelegate: class {
    func articleDidTap(_ article: Article)
}


class MyCell: UICollectionViewCell {

    var article: Article! {
        didSet {
            // update your views here
        }
    }
    weak var delegate: MyCellDelegate?

    override func awakeFromNib() {
        super.awakeFromNib()
        addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(MyCell.tap)))
    }

    @objc func tap() {
        delegate?.articleDidTap(article)
    }

}

这应该可以工作,因为您的视频视图应该重叠根视图,并防止从手势识别器接收点击。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48260318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档