美文网首页iOS新手学习
iOS本地预览和网络预览PDF等文件(三)——UIDocumen

iOS本地预览和网络预览PDF等文件(三)——UIDocumen

作者: 我是好宝宝_6966 | 来源:发表于2019-01-24 13:49 被阅读0次

项目知识点

区别:

1.UIDocumentInteractionController一次只能浏览一个文件,QLPreviewController可以一起浏览多个文件;2.UIDocumentInteractionController有第三方分享和特定操作,QLPreviewController则没有

UIDocumentInteractionController本地查看文件

1.实例化一个UIDocumentInteractionController对象并遵守其delegate
@interface FileReviewController () <UIDocumentInteractionControllerDelegate>
@property (nonatomic, strong) UIDocumentInteractionController *DIController;
@end
NSURL *urlPath = [[NSBundle mainBundle] URLForResource:@"Jobs" withExtension:@"pdf" subdirectory:@"PDF.bundle"];
self.DIController = [UIDocumentInteractionController interactionControllerWithURL:urlPath];
self.DIController.delegate = self;
2.实现delegate
#pragma mark - UIDocumentInteractionControllerDelegate
- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller {
    return self;
}

- (UIView*)documentInteractionControllerViewForPreview:(UIDocumentInteractionController*)controller {
    return self.view;
}

- (CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController*)controller {
    return self.view.frame;
}
3.点击按钮读取本地文件
- (void)actionDIView {
    [self.DIController presentPreviewAnimated:YES];
}
效果图1

UIDocumentInteractionController第三方分享

- (void)actionDIThird {
    [self.DIController presentOptionsMenuFromRect:self.view.bounds inView:self.view animated:YES];
}

在弹出的菜单栏也可以选择Quick Look进行本地查看

效果图2
第一行列表显示“AirDrop”是苹果在iOS 7提供的一种跨设备分享的技术;
第二行列表展示整个iOS系统中,可以操作PDF文档的应用程序列表,还包括了苹果在iOS 8提供的Share Extension图标;
第三行列表展示现实设备可选的操作,如Copy,Print等;
若没有定义全局变量UIDocumentInteractionController,此时点击微信等App会报错,原因是UIDocumentInteractionController过早释放
错误日志1
错误日志2
真机效果图

相关文章

网友评论

    本文标题:iOS本地预览和网络预览PDF等文件(三)——UIDocumen

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