发现了一个有意思的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;
}