QLPreviewController 的使用

在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

{

  //控制器在即将消失后调用

}


你可能感兴趣的:(ios,pdf,QuickLook)