快速查看生成器iOS

时间:2014-03-07 02:49:16

标签: ios objective-c

有没有办法在iOS上扩展Quick Look Framework来处理像Mac上的未知文件类型?我不想切换到我的应用程序来预览文件,就像在电子邮件或iMessage中查看图像文件一样。我想删除必须选择用于打开文件的应用程序的步骤。

在Mac上,他们称之为快速查看生成器,但我找不到在iOS上执行此操作的方法

2 个答案:

答案 0 :(得分:2)

这是您在iOS中使用快速查看框架的方式

Xcode 8.3.2。斯威夫特3

首先转到Build Phases并在Link Binary with Libraries下添加新框架 QuickLook.framework

在ViewController类

中单击导入QuickLook

接下来将QuickLook的委托方法设置为ViewController类,以访问QUickLook.framework的所有方法(见下文)。

class ViewController: UIViewController , QLPreviewControllerDataSource {
    }

接下来在您的班级中创建QLPreviewController的实例,如下所示:

让quickLookController = QLPreviewController()

现在在viewdidload方法中设置datasource:

override func viewDidLoad() {
        super.viewDidLoad()

        quickLookController.dataSource = self
}

现在创建一个 fileURLs 数组,以存储稍后需要通过委托方法传递给QLPreviewController的所有文档路径。

var fileURLs = [URL]()

现在在您的类中添加以下方法,告诉QLPreviewController您的文档总数。

func numberOfPreviewItemsInPreviewController(controller: QLPreviewController) -> Int {
            return fileURLs.count
        }

func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
            return fileURLs[index] as QLPreviewItem
        }

@available(iOS 4.0, *)
func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
            return fileURLs.count
        }

最后显示你的文档的方法。您还可以检查是否可以预览要预览的文档类型,如下所示。

func showMyDocPreview(currIndex:Int) {

        if QLPreviewController.canPreview(fileURLs[currIndex] as QLPreviewItem) {
            quickLookController.currentPreviewItemIndex = currIndex
            navigationController?.pushViewController(quickLookController, animated: true)
        }
    }

答案 1 :(得分:1)

现在,如果要显示未由标准QLPreviewController处理的类型的文件的预览,您必须自己在自己的应用中编写一些内容。您不能像在Mac上那样编写自定义Quick Look插件。