【发布时间】:2021-12-10 20:49:59
【问题描述】:
我正在显示一个 PDF 文件,并想添加一个屏幕边缘手势来移动页面。
当 PDF 的全部内容显示在屏幕上时,以下代码可以正常工作。但是,当 PDF 被缩放时,屏幕边缘手势甚至无法激活。
override func viewDidLoad(){
super.viewDidLoad()
//set up gesture to swipe from the edge
let leftScreenEdgeRecognizer = UIScreenEdgePanGestureRecognizer (
target: self, action: #selector(TextDocumentViewController.leftEdgePanGestureHandler(_ : )))
leftScreenEdgeRecognizer.edges = UIRectEdge.left
let rightScreenEdgeRecognizer = UIScreenEdgePanGestureRecognizer (
target: self, action: #selector(TextDocumentViewController.rightEdgePanGestureHandler(_ : )))
rightScreenEdgeRecognizer.edges = UIRectEdge.right
//register the gesture
pdfView.addGestureRecognizer(leftScreenEdgeRecognizer)
pdfView.addGestureRecognizer(rightScreenEdgeRecognizer)
}
//gesture functions here
@objc func leftEdgePanGestureHandler(_ sender: UIScreenEdgePanGestureRecognizer){
if(sender.state == UIGestureRecognizer.State.ended){
print ("Left Edge")
pdfView.goToPreviousPage(sender)
}
}
@objc func rightEdgePanGestureHandler(_ sender: UIScreenEdgePanGestureRecognizer){
if(sender.state == UIGestureRecognizer.State.ended){
print ("right Edge")
pdfView.goToNextPage(sender)
}
}
我厌倦了添加类似的代码,
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
但是,这根本不起作用。
【问题讨论】:
-
根据您的描述,当 PDF 被缩放时会出现问题......缩放的代码是什么样的?
-
缩放被激活为 PDF 查看的原始功能。我使用情节提要添加了
UIView并在ViewController.swift中注册为@IBOutlet weak var pdfView: PDFView! -
我能够解决这个问题。我在下面发布了我的解决方案。谢谢你,@ScottThompson 试图帮助我!
标签: swift uigesturerecognizer iso pdfview