美文网首页
QLPreviewController 实现查看、分享 本地文件

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

作者: yscGr | 来源:发表于2017-06-09 11:15 被阅读0次

    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、补充:这个方法只能在真机状态下 使用

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/rwixqxtx.html