有没有办法在iOS上扩展Quick Look Framework来处理像Mac上的未知文件类型?我不想切换到我的应用程序来预览文件,就像在电子邮件或iMessage中查看图像文件一样。我想删除必须选择用于打开文件的应用程序的步骤。
在Mac上,他们称之为快速查看生成器,但我找不到在iOS上执行此操作的方法
答案 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插件。