《iOS 6高级开发手册(第4版)》——2.5节秘诀:Quick Look预览控制器
本节书摘来自异步社区《iOS 6高级开发手册(第4版)》一书中的第2章,第2.5节秘诀:Quick Look预览控制器,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.5 秘诀:Quick Look预览控制器
iOS 6高级开发手册(第4版)
Quick Look预览控制器类允许用户预览许多文档类型。这个控制器支持文本、图像、PDF、RTF、iWork文件、Microsoft Office文档(Office 97及更高版本,包括doc、ppt、xls等)和逗号分隔的值(comma-separated value,csv)文件。你提供一种受支持的文件类型,Quick Look控制器将为用户显示它。集成的系统提供的活动视图控制器有助于共享预览的文档,如图2-6所示。
Quick Look控制器以模态方式展示,并且显示用户点按了动作按钮之后的屏幕。Quick Look控制器可以处理广泛的文档类型,使用户能够先查看文件内容,然后再决定要应用于它们的动作。大多数Quick Look类型都支持Mail(邮件)和Print(打印),其中许多类型支持Copy(复制),图像文件甚至提供了更多的选项
可以推送或展示预览控制器。控制器能够适应这两种情形,与导航栈和模态表示协同工作。秘诀2-5演示了两种方法。
2.5.1 实现Quick Look
Quick Look支持需要几个简单的步骤。
(1) 在主控制器类中声明QLPreviewControllerDataSource协议。
(2) 实现numberOfPreviewItemsInPreviewController:和previewController:previewItemAtIndex:数据源方法。其中第一个方法返回要预览的项目计数;第二个方法则返回索引所引用的预览项目。
(3) 预览项目必须遵守QLPreviewItem协议,该协议包含两个必需的属性:预览标题和项目URL。秘诀2-5创建了一个符合要求的QuickItem类,该类实现了一个绝对最低限度的方法,用于支持数据源。
在满足了所有这些要求之后,代码将准备好创建一个新的预览控制器,设置它的数据源,然后展示或推送它。
秘诀2-5 Quick Look
@interface QuickItem : NSObject <QLPreviewItem>
@property (nonatomic, strong) NSString *path;
@property (readonly) NSString *previewItemTitle;
@property (readonly) NSURL *previewItemURL;
@end
@implementation QuickItem
// Title for preview item
- (NSString *) previewItemTitle
{
return [_path lastPathComponent];
}
// URL for preview item
- (NSURL *) previewItemURL
{
return [NSURL fileURLWithPath:_path];
}
@end
#define FILE_PATH [NSHomeDirectory() \
stringByAppendingPathComponent:@"Documents/PDFSample.pdf"]
@interface TestBedViewController : UIViewController
<QLPreviewControllerDataSource>
@end
@implementation TestBedViewController
- (NSInteger) numberOfPreviewItemsInPreviewController:
(QLPreviewController *) controller
{
return 1;
}
- (id <QLPreviewItem>) previewController:
(QLPreviewController *) controller
previewItemAtIndex: (NSInteger) index;
{
QuickItem *item = [[QuickItem alloc] init];
item.path = FILE_PATH;
return item;
}
// Push onto navigation stack
- (void) push
{
QLPreviewController *controller =
[[QLPreviewController alloc] init];
controller.dataSource = self;
[self.navigationController
pushViewController:controller animated:YES];
}
// Use modal presentation
- (void) present
{
QLPreviewController *controller =
[[QLPreviewController alloc] init];
controller.dataSource = self;
[self presentViewController:controller
animated:YES completion:nil];
}
- (void) loadView
{
self.view.backgroundColor = [UIColor whiteColor];
self.navigationItem.rightBarButtonItem =
BARBUTTON(@"Push", @selector(push));
self.navigationItem.leftBarButtonItem =
BARBUTTON(@"Present", @selector(present));
}
@end
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
《iOS 8开发指南(第2版)》——第6章,第6.2节Xcode中的MVC
本节书摘来自异步社区《iOS 8开发指南(第2版)》一书中的第6章,第6.2节Xcode中的MVC,作者 管蕾,更多章节内容可以访问云栖社区“异步社区”公众号查看 6.2 Xcode中的MVCiOS 8开发指南(第2版)在用Xcode编程并在Interface Builder中安排用户界面(UI)元素后,Cocoa Touch的结构旨在利用MVC(Model-View-Controller,模型—视图—控制器)设计模式。在本节的内容中,将讲解Xcode中MVC模式的基本知识。 6.2.1 原理MVC模式会将Xcode项目分为如下3个不同的模块。 1.模型模型是应用程序的数据,比如项目中的数据模型对象类。模型还包括采用的数据库架构,如Core Data或者直接使用SQLite文件。 2.视图顾名思义,视图是用户看到的应用程序的可视界面。它包含在Interface Builder中构建的各种UI组件。 3.控制器控制器是将模型和视图元素连接在一起的逻辑单元,处理用户输入和UI交互。UIKit组件的子类,比如UINavigationController和UITabBarController是...
-
下一篇
《Android应用开发入门经典(第3版)》——导读
本节书摘来自异步社区《Android应用开发入门经典(第3版)》一书中的目录,作者 【美】Carmen Delessio , Lauren Darcey , Shane Conder,更多章节内容可以访问云栖社区“异步社区”公众号查看 目 录第1章 入门——创建一个简单的应用 1.1 建立开发环境 1.2 立即创建一个简单的应用 1.3 理解Java代码和XML布局 1.4 运行应用 1.5 定制应用 1.6 小结 1.7 问与答 1.8 作业 1.9 练习 第2章 理解Android Activity第3章 Android项目和资源探究第4章 不仅仅是智能手机:支持平板电脑、电视等第5章 使用布局第6章 使用基本的UI控件 6.1 创建演示应用 6.2 使用输入控件 6.3 组合使用控件和适配器 6.4 ProgressBar和SeekBar6.5 ImageView 6.6 小结 6.7 问与答 6.8 作业 6.9 练习 第7章 动作栏和菜单导航第8章 activity和fragment第9章 警报!使用对话框第10章 List、Grid、Gallery以及Flipper第11章...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS6,CentOS7官方镜像安装Oracle11G
- MySQL8.0.19开启GTID主从同步CentOS8

微信收款码
支付宝收款码