touchesBegan 在 PDFView 中没有触发

Posted

技术标签:

【中文标题】touchesBegan 在 PDFView 中没有触发【英文标题】:touchesBegan not firing in PDFView 【发布时间】:2017-10-20 12:41:36 【问题描述】:

我正在尝试确定 PDFView 上的触摸位置。我已将我的 pdf 视图设置为与用户交互,如下所示:

pdfView?.isUserInteractionEnabled = true

然后我使用以下函数来检测触摸:

 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
    if let touch = touches.first 
        let position = touch.location(in: pdfView)
        print(position)
    

touchesBegan 代码永远不会被触发。

【问题讨论】:

您是否尝试过覆盖 canBecomeFirstResponder 并返回 true? 不,Leo,我现在就试试。 仍然没有运气狮子座。我将 self.pdfView?.becomeFirstResponder() 添加到 viewDidLoad() 但仍然没有触发 touchesBegan。 我不是这么说的。尝试将此添加到您的视图控制器override var canBecomeFirstResponder: Bool return true 没有仍然没有响应。 【参考方案1】:

向 PDFView 添加手势识别器,如下所示:

    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(didTap(_:)))
    tapGesture.numberOfTapsRequired = 1

     if var recognizer = pdfView.gestureRecognizers 
        recognizer.append(tapGesture)
        pdfView.gestureRecognizers = recognizer
    

【讨论】:

以上是关于touchesBegan 在 PDFView 中没有触发的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中创建单页垂直滚动 PDFView

在 PDFView (iOS) 上禁用缩放

如何知道用户何时在 PDFView 中滑动到下一页? - 安卓

将子视图添加到 PDFView

在swift中子类化'PDFView' - 找不到接口声明

iOS PDFKit在PDFView中调整pdf框架