在iOS4.0之后,使用官方SDK中的QLPreviewController可以预览PDF文件,他还支持其他的文件格式
1.iWork文档
2.微软Office97以上版本的文档
3.RTF文档
4.PDF文件
5.图片文件
6.文本文件和CSV文件
QLPreviewController需要用到QuickLook.framework,在.h文件中导入QuickLook/QuickLook/h,QLPreviewController支持打开网络的和本地的文件,这里我用的是本地的文件
- (void)viewDidLoad
{
[superviewDidLoad];
UIButton * btn =[UIButton buttonWithType:UIButtonTypeSystem];
btn.frame =CGRectMake(10, 100, 300, 40);
[btnsetTitle:@"打开" forState:UIControlStateNormal];
[btnaddTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:btn];
_PDFArray =@[kPDFUrlOne,kPDFUrlTwo,kPDFUrlThree,kRTF];
}
-(void)btnClick:(UIButton *)btn
{
QLPreviewController* qlPreview = [[QLPreviewController alloc]init];
qlPreview.dataSource= self; //需要打开的文件的信息要实现dataSource中的方法
qlPreview.delegate= self; //视图显示的控制
[self presentViewController:qlPreview animated:YES completion:^{
//需要用模态化的方式进行展示
}];
}
#pragma mark - previewControllerDataSource
-(NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController*)controller
{
return_PDFArray.count; //需要显示的文件的个数
}
-(id<QLPreviewItem>)previewController:(QLPreviewController*)controller previewItemAtIndex:(NSInteger)index
{
//返回要打开文件的地址,包括网络或者本地的地址
NSURL * url =[NSURL fileURLWithPath:_PDFArray[index]];
return url;
}
#pragma mark - previewControllerDelegate
-(CGRect)previewController:(QLPreviewController*)controller frameForPreviewItem:(id<QLPreviewItem>)iteminSourceView:(UIView *__autoreleasing *)view
{
//提供变焦的开始rect,扩展到全屏
return CGRectMake(110, 190, 100, 100);
}
-(UIImage *)previewController:(QLPreviewController*)controller transitionImageForPreviewItem:(id<QLPreviewItem>)itemcontentRect:(CGRect *)contentRect
{
//返回控制器在出现和消失时显示的图像
return [UIImageimageNamed:@"gerenziliao_morentouxiang.png"];
}
-(void)previewControllerDidDismiss:(QLPreviewController*)controller
{
//控制器消失后调用
}
-(void)previewControllerWillDismiss:(QLPreviewController*)controller
{
//控制器在即将消失后调用
}