iOS 利用UIDocumentInteractionController打开和预览文档
iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller。此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件。而且,从4.2开始,Quick Look Framework提供了对多种文档的内置打印。你可以参考DocumentInteraction Controller类参考以及Quick Look Framework指南,以及DocInteraction示例程序。
本文讨论了Document InteractionController的使用。
-、创建实例
DocumentInteraction Controller使用静态方法interactionControllerWithURL创建实例,这个方法使用一个NSURL作为参数。
代码:
NSURL *url=[NSURL fileURLWithPath:path];
controller = [UIDocumentInteractionController interactionControllerWithURL:url];
二、显示预览窗口
Document Interaction Controller对象使用presentPreviewAnimated方法弹出一个全屏的文档预览窗口。
代码:
BOOL b=[controller presentPreviewAnimated:YES];
三、显示菜单
如果你不想直接弹出预览窗口,你可以显示一个选项菜单给用户,由用户选择相应的操作。显示菜单可以使用下列方法:
–presentOptionsMenuFromRect:inView:animated:
–presentOptionsMenuFromBarButtonItem:animated:
–presentOpenInMenuFromRect:inView:animated:
–presentOpenInMenuFromBarButtonItem:animated:
这些方法都是类似的,只是显示位置有区别而已。以下代码演示其中一个方法的使用。
代码:
CGRect navRect = self.navigationController.navigationBar.frame;
navRect.size = CGSizeMake(1500.0f, 40.0f);
[controller presentOptionsMenuFromRect:navRect inView:self.view animated:YES];
四、使用委托
如果你显示一个Document Interaction Controller ,则必需要为delegate属性用指定一个委托。让委托告诉DocumentInteraction Controller如何显示。
代码:
controller.delegate =self;
委托对象需要实现一系列委托方法,最常见的包括:
–documentInteractionControllerViewControllerForPreview:
–documentInteractionControllerViewForPreview:
–documentInteractionControllerRectForPreview:
这3个方法在用户点击“快速查看”菜单时依次调用。
代码:
- (UIViewController*)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController*)controller
{
return self;
}
- (UIView*)documentInteractionControllerViewForPreview:(UIDocumentInteractionController*)controller
{
return self.view;
}
- (CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController*)controller
{
return self.view.frame;
}
//点击预览窗口的“Done”(完成)按钮时调用
- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController*)_controller
{
[_controller autorelease];
}
转载于:https://www.cnblogs.com/bu779783251/archive/2013/05/15/3080929.html
iOS 利用UIDocumentInteractionController打开和预览文档相关推荐
- iOS利用UIDocumentInteractionController和Quick Look打开或预览文档
在App的开发过程中,我们避免不了要打开软件中的文件,例如:Excel文件,Word文件,图片文件等不同格式的文件或者想要通过第三方的App来打开这些文件,那么我们就要用到UIDocumentInte ...
- 【板栗糖GIS】怎么将网络上只能在线预览文档另存为pdf(插件篇)
怎么将网络上只能在线预览文档另存为pdf(插件篇) 目录 1.使用插件,这里推荐FireShot,好用免费 2.安装该插件的方式 3.打开在线预览文档的网址 4.点击插件-截取整个页面并且-另存为pd ...
- 前端页面预览word_前端实现在线预览文档
前端实现在线预览文档 发布时间:2019-06-03 17:22, 浏览次数:529 <>前端实现在线预览文档 最近项目开发中需要实现在线预览Word,Excel,PowerPoint格式 ...
- 在线预览文档 Office Online
前言 一直想学习做个在线预览文档的功能,今天使用Office Online Server 2016进行实现在线预览功能. 服务器版本选择:Office Online Server 2016搭配wind ...
- PHP 在线预览文档
PHP 在线预览word.excel.ppt.pdf.txt等文档文件. PHP 在线预览文档 写代码比较少的方案. // PDF.text可以直接网页打开查看 // word.excel.ppt 文 ...
- OpenOffice在线预览文档
使用OpenOffice在线预览文档 开发中遇到了一个需求,需要在线预览word文档,excel表格,pdf等等文件,于是经过一圈Google,发现了这个工具,openoffice会把文档转为pdf文 ...
- java实现openoffice在线预览文档
1.openoffice需要导入的jar包 jodconverter-core-3.0-beta-4.jar juh-3.2.1.jar jurt-3.2.1.jar ridl-3.2.1.jar u ...
- 前端实现在线预览文档
前端实现在线预览文档 最近项目开发中需要实现在线预览Word,Excel,PowerPoint格式的文档,网上查找了很多资源,各说纷纭,但是在一一尝试之后只有使用微软的预览接口才能成功,其他的会出现各 ...
- html怎么转换到百度,类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版...
类似百度文库在线预览文档flash版(支持word.excel.ppt.pdf)+在线预览文档html版 (1).将文档转换为html,只支持支持office文档 (2).将文档转换为flash,实现 ...
最新文章
- SSHDroid及sshpass简介
- 男生和女生的差别(转载)
- 什么是滚动灯箱的全数字滚动系统?
- 在panel中显示一个新的form
- android 许可协议,Android 基本控件的使用二(注册许可协议)(CheckBox)
- javascript包装对象
- android知识图谱
- Java中字符串split() 的使用方法
- 工具库用久了,你还会原生操作 Cookie 吗?
- html5 游戏 算法,JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】...
- 《数字视频和高清:算法和接口》一3.3感知均匀性
- 【笔记】VUE学习笔记
- get方式乱码post方式不会乱码原因
- autosar网络管理_Autosar 软件框架
- python画兔子代码_Python基础练习实例11(兔子问题)
- html中加号实体,纯css实现加号“+”效果(代码示例)
- c语言报数问题程序,转圈报数问题(C语言):有n个人围成一圈,顺序排号……...
- html5 移动端手写签名,H5移动端项目实现手写签名功能 vue实现手写签名
- 运动耳机品牌推荐,热门六款运动耳机推荐
- (前端)HTML之CSS(选择器字体排版背景)
热门文章
- linux基础服务,Linux基础
- mysql schema命名规范_数据库设计 命名及编码规范
- 普通RNN的缺陷—梯度消失和梯度爆炸
- pythoni手机版下载_Python进度栏和下载
- 提示未检测到 oracle,Oracle RAC [INS-40406] 未检测到现有的 Oracle Grid Infrastructure 软件...
- c语言成绩等级switch语句,请高手 帮忙做一道c语言题 编程,把百分制成绩转换成5级记分制,要求用switch语句。 90分以上(包括90):...
- mac mail 删除邮件服务器,如何从Mac OS X中的邮件中删除所有电子邮件 | MOS86
- Sublime Text 3 详细安装教程
- 无季节效应的非平稳序列分析(一)
- java markdown转word_一键将 Word 转换为 Markdown