前一阵项目需要添加一个文档文件的查看功能,于是就各种找资料,一开始想实用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 ;
} - (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

05-11 13:02