저는 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")
}
}
을 등처럼 추가 : 23,414,가 여기에 지금까지 무엇을 가지고 있습니다 .... 난 그렇게처럼 내 서브 클래스를 다시 썼다
let preview = QLPreview()
preview.delegate = self
preview.dataSource = self
self.view.addSubview(preview.view)
을하지만 여전히 내 인쇄 방법이 표시되지 않습니다.
나는 UIWebView를 사용하여 내 PDF를로드하기로 결정했습니다 ...이 기능은 챔피언처럼 작동합니다. – user979331
똑똑한 솔루션, 공유해 주셔서 감사합니다. – Groarus