您的位置:首页 > 产品设计 > UI/UE

iOS 利用QuickLook查看PDF、WORD、PPT、xlsx

2014-03-18 13:11 369 查看
代码下载:http://download.csdn.net/detail/qqmcy/7059831

这个我们学习iOS的QuickLook框架实现很简单,如下:

ViewController.h

#import <UIKit/UIKit.h>
#import <QuickLook/QuickLook.h>

@interface ViewController : UIViewController<QLPreviewControllerDataSource,QLPreviewControllerDelegate,UIDocumentInteractionControllerDelegate>
@property (strong , nonatomic)  QLPreviewController *previewController;

@end


ViewController.m

//
//  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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: