私は多くの異なるファイルをユーザーに表示するiOSアプリケーションで作業しています。ビデオやオーディオファイルからhtmlファイル、Office/iWorksファイルへ。 QLPreviewControllerをサブクラス化し、これらのファイルの一部を表示するために使用します。私はオブジェクトを作成し、それにファイルのURLを渡し、ViewControllerのビューのフレームを親ViewControllerのWebViewのフレームに置き換えます。 :iOS 10、QLPreviewViewControllerがファイルを表示していません
ビュー・デバッグ・階層・ツールを使用してelse if (QuickLookViewController.canOpenFile(previewItem: contentUrl as NSURL)) {
hideControls()
quickLook.contentURLs = [contentUrl as NSURL]
//add the QuickLookController's view to content display using webview's frame
self.view.addSubview(quickLook.view)
quickLook.view.frame = webview!.frame
quickLook.reloadData()
、それが正しく設定図を示しているだけでなく、単なるテストにquickLook.backgroundColor = UIColor.blackを設定します。
は、だから私は多分、私はファイルがあることを確認するためにいくつかのテストを追加QuickLookControllerののviewDidLoadでので、ダウンロードして保存されたファイルへのアクセスに問題があったことを考えた:super.viewDidLoad()
print("\nContent URL: \(contentURLs[0])")
print("\nContent URL Path: \(contentURLs[0].path!)")
self.delegate = self
self.dataSource = self
var error : NSError?
print("\nis reachable: \(contentURLs[0].checkResourceIsReachableAndReturnError(&error))")
if (error != nil) {
print("is reachable error -> \(error.debugDescription)")
}
print("\ndoes exist: \(FileManager.default.fileExists(atPath: contentURLs[0].path!))")
print("\nCan open: \(QuickLookViewController.canOpenFile(previewItem: contentURLs[0]))")
とログステートメント
Content URL: file:///var/mobile/Containers/Data/Application/B9D5C288-F889-4513-941E-2564F1C12F02/Documents/588c5a1e-dffe-47a8-9824-bc19463aafc2/d88a8dd5-40d1-4fdb-adf3-10fce1f6bf1f/fd73c162-5ac3-4269-8573-9c0b61bef7a7/fd73c162-5ac3-4269-8573-9c0b61bef7a7.pages
Content URL Path: /var/mobile/Containers/Data/Application/B9D5C288-F889-4513-941E-2564F1C12F02/Documents/588c5a1e-dffe-47a8-9824-bc19463aafc2/d88a8dd5-40d1-4fdb-adf3-10fce1f6bf1f/fd73c162-5ac3-4269-8573-9c0b61bef7a7/fd73c162-5ac3-4269-8573-9c0b61bef7a7.pages
is reachable: true
does exist: true
Can open: true
は、私もに、llbd文として「!PO self.view.superview .frame」を使用してクイックルックのスーパービューが設定されていることを確認するためのviewDidLoadでブレークポイントを使用して、再度受信:私は期待して出てきます私が期待した出力。
私は、この同じクラスをアプリ内の別のビュースタックに使用し、クリックされたファイルを表示するので、私には分かりません。 2つの用途の唯一の違いは、2番目はviewControllerでモーダル表示されたquickLookのビューです。