首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在视图中使用UIPanGestureRecognizer时未调用didSelectItemAt

在视图中使用UIPanGestureRecognizer时未调用didSelectItemAt
EN

Stack Overflow用户
提问于 2018-05-29 07:47:06
回答 1查看 111关注 0票数 -1

我在我的视图中同时使用了轻击和平移手势。该视图有一个UICollectionView,我试图在其中调用didSelectItemAt,但是该方法并未被调用。

我已经尝试了以下方法,但没有成功。

代码语言:javascript
复制
override func viewDidLoad() {
   panGesture.delegate = self
   tapGesture.delegate = self
}

extension AddNotebookViewController: UIGestureRecognizerDelegate {
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return true
    }
}

有谁知道这个问题可能是什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 08:30:06

正如您已经猜到的,问题在于背景视图的手势识别器接受了选择集合视图单元格的点击。要解决此问题,请在视图控制器中实现此手势识别器委托方法:

代码语言:javascript
复制
func gestureRecognizerShouldBegin(_ gr: UIGestureRecognizer) -> Bool {
    let p = gr.location(in: self.view)
    let v = self.view.hitTest(p, with: nil)
    return v == gr.view
}

结果是,如果手势在集合视图中,背景视图的手势识别器将不会开始,并且将能够进行正常选择。

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

https://stackoverflow.com/questions/50574597

复制
相关文章

相似问题

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