QuickLook -QLPreviewController

2019-06-14  本文已影响0人  彬至睢阳

import "QuickLookViewController.h"

import <QuickLook/QuickLook.h>

import "QLNewPreviewItem.h"

@interface QuickLookViewController ()<QLPreviewControllerDataSource,QLPreviewControllerDelegate>

@end

@implementation QuickLookViewController

/*
QuickLook

QLPreviewController---用于预览项的专用视图。
QLPreviewRequestRef---表示预览请求对象的不透明引用。
QLThumbnailRef、QLThumbnailRequestRef----表示缩略图请求对象的不透明引用。
QLFileThumbnailRequest
QLThumbnailProvider
QLThumbnailReply

协议

QLPreviewControllerDataSource--预览控制器的数据源必须采用此协议向控制器提供预览项。
QLPreviewControllerDelegate--预览控制器的委托必须采用此协议。
QLPreviewItem---一种协议,它定义了您实现的属性,使您的应用程序的内容在QuickLook预览中可见(iOS中的QLPreviewController或macOS中的QLPreviewPanel)。
QLPreviewingController

QLPreviewController---用于预览项的专用视图。
概述
显示的预览包括从项目URL的最后一个path组件获取的标题。您可以通过实现预览项的previewItemTitle访问器来覆盖此功能。
QLPreviewController可以显示以下项目的预览:
1.iWork文档
2.微软Office文档(Office ' 97及更新版本)
3.富文本格式(RTF)文档
4.PDF文件

  1. 图片
    6.统一类型标识符(UTI)符合公共的文本文件。文本类型(参见统一类型标识符引用)
    7.逗号分隔值(csv)文件
    8.usz格式的3D模型(带有独立视图和AR视图以查看模型)

QLPreviewController可以通过从呈现的UIViewController中调用presentViewController:animated:completion:来模态地呈现(即全屏),也可以使用UINavigationController将其推入视图。
要使用快速查看预览控制器,必须提供一个数据源对象。数据源向控制器提供预览项,并告诉控制器在预览导航列表中包含多少项。如果列表中有多个项,则模式显示的控制器将显示导航箭头,以便用户在这些项之间切换。要使用导航控制器推送快速查看预览控制器,可以在导航栏中提供按钮,以便在导航列表中移动。

配置快速查看预览控制器---1.dataSource 快速预览控制器的数据源。该协议还允许数据源告诉QLPreviewController预览项导航列表中要包含多少项。此协议的方法是必需的。

管理项目预览
1.+ canPreviewItem:指示快速查看预览控制器是否可以显示项。
2.currentPreviewItem当前显示在快速查看预览控制器中的项。
3.currentPreviewItemIndex预览项导航列表中当前显示在Quick Look预览控制器中的项的索引。
4.- refreshCurrentPreviewItem要求快速预览控制器重新计算当前预览项的显示。
5.- reloadData要求预览控制器从其数据源重新加载其数据。

QLPreviewItem
一种协议,它定义了您实现的属性,使您的应用程序的内容在QuickLook预览中可见(iOS中的QLPreviewController或macOS中的QLPreviewPanel)。
QLPreviewItem协议中的方法也被声明为NSURL类上的一个类别。因此,您可以直接使用NSURL对象作为预览项——前提是您希望使用这些项的默认标题。默认标题是项目URL的最后一个路径组件。如果希望提供自己的预览项标题,请创建采用此协议的自己的预览项对象。
previewItemURL--要预览的项的URL。
previewItemTitle--要显示预览项的标题。
previewItemDisplayState--预览项的显示状态。此属性是可选的。

要先加入头文件#import <QuickLook/QuickLook.h>
webView加载Pdf文件y会占用多点内存

*/

}
-(void)but{
[self initQuickLook];
}

pragma mark--QuickLook

-(void)initQuickLook{

QLPreviewController* lpVC = [[QLPreviewController alloc]init];
lpVC.delegate = self;
lpVC.dataSource = self;
[self presentViewController:lpVC animated:YES completion:nil];

}

pragma mark--QLPreviewControllerDataSource

/*!

/*!

pragma mark--QLPreviewControllerDelegate

}

}

/*!
在尝试打开预览中单击的URL之前,由预览控制器调用。

/*!

/*!

/*!

pragma mark---界面初始化

@end
-------------------QLNewPreviewItem.h-------------------------

import <Foundation/Foundation.h>

import <QuickLook/QuickLook.h>

@interface QLNewPreviewItem : NSObject<QLPreviewItem>
@property( nullable, nonatomic) NSURL * previewItemURL;
@property( nullable, nonatomic) NSString * previewItemTitle;
@end

-----------------------QLNewPreviewItem.m-------------------------------

import "QLNewPreviewItem.h"

@implementation QLNewPreviewItem

@end

上一篇 下一篇

猜你喜欢

热点阅读