私はSwiftのQLPreviewControllerで作業しています。これまでは、プッシュまたはプレゼンテーションを行う代わりに、サブビューにPDFを追加して表示することができました。これにより、ドキュメントの一番下にカスタムツールバーがあり、一番上にカスタムナビゲーションが表示されます。QLPreviewControllerとtouchesBeganメソッド
これで、QLPreviewControllerビューにtouchesBeganメソッドを使用できるようにする必要があります。
私はいくつかの調査をしていましたが、QLPreviewControllerのサブクラスを作成し、viewDidAppearをオーバーライドしてUITapGestureRecognizerを追加する必要があります。
私の質問は、QLPreviewControllerのサブクラスを作るにはどうすればいいですか?
このような感じですか?ここで
import UIKit
import QuickLook
class QLPreview: QLPreviewController {
override func viewDidLoad()
{
//Do UITapGestureRecognizer
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
//Touch QLPreviewController view
}
func detectPan(recognizer:UIPanGestureRecognizer)
{
}
}
私は
viewPDF = QLPreviewController()
viewPDF.dataSource = self
viewPDF.delegate = self
viewPDF.view.frame = CGRectMake(0, 60, 375.0, 667.0)
self.view.addSubview(viewPDF.view)
viewPDF.view.userInteractionEnabled = true
self.navigationController?.toolbarHidden = false
self.navigationController?.navigationBarHidden = false;
をサブビューするQLPreviewControllerビューを追加し、ここにいるかである任意のヘルプは非常に
UPDATEをいただければ幸い私のデリゲートメソッド
func numberOfPreviewItemsInPreviewController(controller: QLPreviewController) -> Int {
return 1
}
func previewController(controller: QLPreviewController, previewItemAtIndex index: Int) -> QLPreviewItem {
PDFTitle.title = fileNameGroup
let localUrl = String(format:"%@/%@", PDFFilePath, fileNameGroup)
let url = NSURL.fileURLWithPath(localUrl)
return url
}
ある
import UIKit
import QuickLook
class QLPreview: QLPreviewController, UIGestureRecognizerDelegate {
override func viewDidLoad()
{
super.viewDidLoad()
self.view.frame = CGRectMake(0, 60, 375.0, 667.0)
let panRecognizer = UIPanGestureRecognizer(target:self, action: #selector(QLPreview.detectPan))
self.view.userInteractionEnabled = true
self.view.addGestureRecognizer(panRecognizer)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
print("touching")
}
func detectPan(recognizer:UIPanGestureRecognizer)
{
print("detect")
}
}
をし、そのようにそれを追加::は、ここで私はこれまで得たものである....私はそうのように私のサブクラスを書き直し
let preview = QLPreview()
preview.delegate = self
preview.dataSource = self
self.view.addSubview(preview.view)
をまだ私の印刷方法が表示されません。
私はUIWebViewで自分のPDFをロードすることに決めました...彼らはチャンピオンのように機能します – user979331
賢い解決策、共有ありがとう – Groarus