這個我們學習iOS的QuickLook框架實現很簡單,如下:
ViewController.h
#import#import @interface ViewController : UIViewController @property (strong , nonatomic) QLPreviewController *previewController; @end
//
// ViewController.m
// QuickLook例子
//
// Created by 杜甲 on 14-3-18.
// Copyright (c) 2014年 杜甲. All rights reserved.
//
#import ViewController.h
@interface ViewController ()
@property (strong , nonatomic) NSArray* m_dirArray;
@property (strong , nonatomic) UIDocumentInteractionController* m_docInteractionController;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory
NSString* pathppt = [[NSBundle mainBundle] pathForResource:@C ofType:@pdf];
NSData* pptData = [NSData dataWithContentsOfFile:pathppt];
NSString* filePath = [documentsPath stringByAppendingPathComponent:@C1.pdf];
[pptData writeToFile:filePath atomically:YES];
NSFileManager* fileManager = [NSFileManager defaultManager];
self.m_dirArray = [NSArray array];
self.m_dirArray = [fileManager contentsOfDirectoryAtPath:documentsPath error:Nil];
NSLog(@%@,self.m_dirArray);
self.view.backgroundColor = [UIColor redColor];
self.previewController = [[QLPreviewController alloc] init];
//self.previewController.view.frame = CGRectMake(0, 0, 320, 568);
self.previewController.view.backgroundColor = [UIColor grayColor];
self.previewController.dataSource = self;
self.previewController.delegate = self;
// start previewing the document at the current section index
self.previewController.currentPreviewItemIndex = 0;//indexPath.row;
[self presentViewController:self.previewController animated:YES completion:^{
[self.view addSubview:self.previewController.view];
}];
[self.view addSubview:self.previewController.view];
}
#pragma mark - QLPreviewControllerDataSource
// Returns the number of items that the preview controller should preview
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)previewController
{
return [self.m_dirArray count];//[self.dirArray count];
}
- (void)previewControllerDidDismiss:(QLPreviewController *)controller
{
// if the preview dismissed (done button touched), use this method to post-process previews
}
// returns the item that the preview controller should preview
- (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)idx
{NSURL* fileURL = nil;
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir = [documentPaths objectAtIndex:0];
NSString* path1 = [self.m_dirArray objectAtIndex:idx];
NSString* path = [documentDir stringByAppendingPathComponent:path1];
fileURL = [NSURL fileURLWithPath:path];
return fileURL;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end