iOS文件展示及分享(二)QLPreviewController

一,简介

QLPreviewController与UIDocumentInteractionController拥有一样的文件展示功能。同样也只是支持展示本地的文件展示和分享。
我们可以先下载到本地再进行展示的方法 实现展示在线文件浏览的功能。

二,导入和支持

//导入头文件
    #import <QuickLook/QuickLook.h>
//遵循代理
//<QLPreviewControllerDataSource,QLPreviewControllerDelegate>

三,使用

1,初始化,设置代理以及展示操作

QLPreviewController * qlController = [[QLPreviewController alloc] init];
qlController.delegate = self;
qlController.dataSource = self;
[qlController setCurrentPreviewItemIndex:0];
[self presentViewController:qlController animated:YES completion:nil];

2,实现代理方法

//展示文件个数
-(NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller{
    return 1;
}
- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index {
    return [NSURL URLWithString:filePath];//filePath文件的保存路径
}

- (void)previewControllerWillDismiss:(QLPreviewController *)controller {
    NSLog(@"previewControllerWillDismiss");
}

- (void)previewControllerDidDismiss:(QLPreviewController *)controller {
    NSLog(@"previewControllerDidDismiss");
}

- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item{
    return YES;
}

- (CGRect)previewController:(QLPreviewController *)controller frameForPreviewItem:(id <QLPreviewItem>)item inSourceView:(UIView * __nullable * __nonnull)view{
    return CGRectZero;
}

四,优化

目前展示的文件时的title是根据文件名决定的,需求要求可以自定义。
我就自定义了一个QuickLookController继承QLPreviewController
Demo-SGQuickLook

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1,善守者藏于九地之下,善攻者动于九天之上。 2,维度分解:做一件复杂的需要慎重考虑的事情(如打仗,兴师十万,日费...
    Sunwenn阅读 337评论 0 1
  • 《六项精进》打卡第95天 姓名:严娜 公司.:宁波万尚进出口有限公司/杭州安简创意设计有限公司 组别:反省二组 【...
    NinaYanWellin阅读 209评论 0 0