好久没写技术博客,今天重温下吧,工作中会遇到一些需求需要在app上查看各种类型文档的文件,看了下资料,苹果在iOS4.0系统中,官方SDK提供了一个QLPreviewController,使用它就可以让我们的App在iPhone/iPad中直接预览各个文件了。官方的开发文档中说明其支持的文件类型有:iWork文档、微软Office97以上版本的文档、RTF文档、PDF文件、图片文件、文本文件和CSV文件!非常的简单实用,废话不多话,很少代码量,注释也满满的,直接上代码
使用之前QLPreviewController需要导入系统库
代码如下
//// ViewController.m// iOS中查看文档//// Created by CuiJianZhou on 2017/6/2.// Copyright © 2017年 SuperVr. All rights reserved.
//#import "ViewController.h"
#import @interface ViewController ()
<
QLPreviewControllerDelegate,
QLPreviewControllerDataSource
>
//打开word文档需要引入的视图控制器
@property (nonatomic, strong)QLPreviewController *previewController;
//文件路径
@property (nonatomic, copy)NSString *path;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//本文使用的是本地路径,网络路径可以使用afn下载文件到本地沙盒,再获取沙盒路径
self.path = [[NSBundle mainBundle]pathForResource:@"xxx文件名" ofType:@"文件格式"];
}
/**
查看文件按钮点击方法
*/
- (IBAction)lockFileButtonClick:(UIButton *)sender {
QLPreviewController *previewController = [[QLPreviewController alloc]init];
previewController.delegate = self;
previewController.dataSource = self;
[self presentViewController:previewController animated:YES completion:nil];
}
/**
文档数量
*/
- (NSInteger)numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller{
return 1;
}
/**
//打开文件的地址
*/
- (id)previewController: (QLPreviewController *)controller previewItemAtIndex:(NSInteger)index {
//打开文件的地址,包括网络或者本地的地址
return [NSURL fileURLWithPath:self.path];
}
/**
点击Done方法(阅读器已经消失的时候调用)
*/
- (void)previewControllerDidDismiss:(QLPreviewController *)controller {
//消失后做你想做的
}
@end