QLPreviewController 预览文件

来源:互联网 发布:js判断字符串不等于 编辑:程序博客网 时间:2024/04/28 20:11

发现了一个有意思的framewokr:quick look.大概可以展示:图片,office, pdf等文件。文件可以通过网络下载到app内,也可以初始化放在项目里。

如果放在项目里,一定要在copy bundle resources那拖进去,否则读取不到!


ag1.首先要写一个实现QLPreviewItem协议的类:MyItem,只要实现两个属性就可以,代码如下:


#import <Foundation/Foundation.h>#import <QuickLook/QuickLook.h>@interface MyItem : NSObject<QLPreviewItem>@property(nullable, nonatomic) NSURL * previewItemURL;@property(nullable, nonatomic) NSString * previewItemTitle;@end

然后在当前vc里的代码如下:


- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {    _qlVc = [[QLPreviewController alloc] init];    _qlVc.dataSource = self;    [self presentViewController:_qlVc animated:YES completion:nil];}#pragma mark - QLPreviewControllerDataSource- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller {    return 1;}- (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index {    MyItem *item = [[MyItem alloc] init];    NSString *path = [[NSBundle mainBundle] pathForResource:@"b" ofType:@"docx"];    NSURL *url = [NSURL fileURLWithPath:path];//一定不要用[NSURL URLWithString:path]    NSData *data = [NSData dataWithContentsOfURL:url];    item.previewItemURL = url;    item.previewItemTitle = @"简历哦";        return item;}


0 0