前一阵项目需要添加一个文档文件的查看功能,于是就各种找资料,一开始想实用webView,然而webView有的格式不支持,而且占内存太大了。找着找着就找到QLPreViewController。用了一下,天了噜,真好用!网上资料很多,我就写点我自己的使用,权当做笔记了。(不知道为啥,写博客之前总爱废话一番。。。)
1、首先,想使用QLPreViewController,你要先导入QuickLook类库。
#import <QuickLook/QuickLook.h>
2、服从QLPreviewController的两个协议。(貌似这货跟跟UITableView是亲戚,协议名都差不多)
<QLPreviewControllerDelegate,QLPreviewControllerDataSource>
3、实现QLPreviewController的代理方法。
#pragma mark - QLPreviewControllerDataSource - (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller { return 1; } - (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index { NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; NSString *fileName = @"保存时候的文件名,一般是url地址的最后面的文件名"; NSString *filePath = [documentPath stringByAppendingPathComponent:fileName]; return [NSURL fileURLWithPath:filePath]; } - (void)previewControllerWillDismiss:(QLPreviewController *)controller { NSLog(@"视图即将dismiss"); }
4、创建QLPreviewController,并设置代理。
QLPreviewController *previewController = [[QLPreviewController alloc] init]; previewController.dataSource = self; previewController.delegate = self; [self presentViewController:previewController animated:YES completion:nil];
5、完事!简单?对,就是这么简单!
注意事项:QLPreviewController这货貌似不支持网络地址,我是先用AFNetworking下载后再打开的。
Demo链接:https://github.com/CoderKb/QLPreviewControllerDemo