2016-07-17 13 views
1

私は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) 

をまだ私の印刷方法が表示されません。

答えて

1

私はまだコメントする評判がありません。

質問に答えるために、QLPreviewControllerを正しくサブクラス化しています。しかし、あなたの印刷方法が機能していないのはまったく別の問題です。 QLPreviewControllerで動作するジェスチャ認識プログラムを取得することは非常に困難です。

ご協力いただければお知らせください。

+1

私はUIWebViewで自分のPDFをロードすることに決めました...彼らはチャンピオンのように機能します – user979331

+0

賢い解決策、共有ありがとう – Groarus

関連する問題