SwiftでiOSでのPDFを表示させるアプリを作成しています。
下記のコードのようにGestureを追加し、画面の端からスワイプすることで、ページが移動できるようにしました。
ところが、PDFが画面のサイズよりも大きくズームインされているときには、なぜかスワイプでページ移動をすることができません。どうやら、スワイプを検知することすらされていないようです。
ズームインされているときにも画面端からのスワイプの動きを検出するようにするには、どうしたらよいのでしょうか?
ご教示いただけますと大変助かります。
swift
1 override func viewDidLoad(){ 2 super.viewDidLoad() 3 4 //橋からのスワイプを検出する 5 let leftScreenEdgeRecognizer = UIScreenEdgePanGestureRecognizer ( 6 target: self, action: #selector(TextDocumentViewController.leftEdgePanGestureHandler(_ : ))) 7 leftScreenEdgeRecognizer.edges = UIRectEdge.left 8 9 let rightScreenEdgeRecognizer = UIScreenEdgePanGestureRecognizer ( 10 target: self, action: #selector(TextDocumentViewController.rightEdgePanGestureHandler(_ : ))) 11 rightScreenEdgeRecognizer.edges = UIRectEdge.right 12 13 //ジェスチャーを登録する 14 pdfView.addGestureRecognizer(leftScreenEdgeRecognizer) 15 pdfView.addGestureRecognizer(rightScreenEdgeRecognizer) 16 17 //ネットでググって、以下のコードを入れてみたのですが挙動に変化がありませんでした。。。 18 func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { 19 return true 20 } 21 22} 23 24 25 26//ジェスチャーが行われたとき。。 27@objc func leftEdgePanGestureHandler(_ sender: UIScreenEdgePanGestureRecognizer){ 28 if(sender.state == UIGestureRecognizer.State.ended){ 29 print ("Left Edge") 30 // ズームされているときに、ズームの比率を保存 31 scaleOfPdf = pdfView.scaleFactor 32 pdfView.goToPreviousPage(sender) 33 pdfView.scaleFactor = scaleOfPdf 34 } 35 36} 37 38@objc func rightEdgePanGestureHandler(_ sender: UIScreenEdgePanGestureRecognizer){ 39 if(sender.state == UIGestureRecognizer.State.ended){ 40 print ("right Edge") 41 // ズームされているときに、ズームの比率を保存 42 scaleOfPdf = pdfView.scaleFactor 43 pdfView.goToNextPage(sender) 44 pdfView.scaleFactor = scaleOfPdf 45 } 46}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。