为 iOS [Swift、iOS 15] 编写 PDF 查看器时无法激活三次轻击手势
Posted
技术标签:
【中文标题】为 iOS [Swift、iOS 15] 编写 PDF 查看器时无法激活三次轻击手势【英文标题】:Triple tap gesture cannot be activated when programming PDF Viewer for iOS [Swift, iOS 15] 【发布时间】:2021-10-25 10:26:57 【问题描述】:我正在尝试创建一个 PDF 查看器,用户可以在其中点击三次以选择一个单词。
我希望它不会与PDFViewer
的双击手势冲突,以便用户可以双击自动缩放。
但是,我无法使用以下代码激活三次点击。
let tapgesture = UITapGestureRecognizer(target: self, action: #selector(tapGesture(_:)))
tapgesture.numberOfTapsRequired = 3
pdfView.addGestureRecognizer(tapgesture)
由于某种原因,指定tapgesture.numberOfTapsRequired = 2
时可以激活双击。但是,这会干扰双击手势,我无法使用自动缩放功能。
【问题讨论】:
【参考方案1】:你可以通过实现shouldBeRequiredToFailBy委托方法来解决这个问题:
extension ViewController: UIGestureRecognizerDelegate
func gestureRecognizer(
_ gestureRecognizer: UIGestureRecognizer,
shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer
) -> Bool
if let tapGestureRecognizer = otherGestureRecognizer as? UITapGestureRecognizer,
tapGestureRecognizer.numberOfTapsRequired == 2
return true
return false
并将代理设置为您的手势识别器:
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tapGesture))
tapGesture.numberOfTapsRequired = 3
tapGesture.delegate = self
【讨论】:
像魅力一样工作!非常感谢@Philipdukhov!以上是关于为 iOS [Swift、iOS 15] 编写 PDF 查看器时无法激活三次轻击手势的主要内容,如果未能解决你的问题,请参考以下文章
.task 崩溃 - Swift 5.5 (iOS 15 Beta 5)