QLPreviewController 实现查看、分享 本地文件

2017-06-09  本文已影响0人  yscGr

1、导入 QuickLook.framework

2、在需要用到的 地方 添加 #import <QuickLook/QuickLook.h>

3、调用<QLPreviewControllerDelegate> 和 <QLPreviewControllerDataSource> 

4、获取本地 文件路径(我这里获取的是Cache路径)


//    NSDocumentDirectory  , NSCachesDirectory   

NSArray *patchs = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [patchs objectAtIndex:0];

//获取到 根目录 为UserDownLoadFile 的文件夹,“UserDownLoadFile”是我之前添加的文件夹,在写入文件到本地时创建

NSString *fileDirectory = [documentsDirectory stringByAppendingPathComponent:@"/UserDownLoadFile"];

//下面是 遍历 目录下所有的文件内容

NSArray *filesArr = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:fileDirectory error:nil];

5、关键步骤 ,创建QLPreviewController,在使用到的方法里创建

QLPreviewController *my = [[QLPreviewController alloc]init];

my.delegate = self;

my.dataSource = self;

[my setCurrentPreviewItemIndex:0];

[self presentViewController:my animated:YES completion:^{

}];

6、代理回调,在下面第二个方法中 fileName 的文件路径拼接方法 要用stringByAppendingPathComponent!!!  要用stringByAppendingPathComponent!!!  要用stringByAppendingPathComponent!!!(重要的事情说三遍,不可用[NSString stringWithFormat:@""]; ,原因可查看stringByAppendingPathComponent 的使用方法) 。其中 abc 表示上面获取到的目录下所有文件的下标,可以任意创建。

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller

{

return 1;

}

- (id)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index

{

NSString *fileName = [fileDirectory stringByAppendingPathComponent:[filesArr objectAtIndex:abc]];

NSURL *fileRUL = [NSURL fileURLWithPath:fileName];

return fileRUL;

}

7、参考

http://www.jianshu.com/p/12a9fd6fa810

8、补充:这个方法只能在真机状态下 使用

上一篇下一篇

猜你喜欢

热点阅读