第一个实用程序---多格式阅读器制作
来源:互联网 发布:程序员面试刷题网站 编辑:程序博客网 时间:2024/05/16 03:31
首先表达对昆明3.01事件中遇难的同胞们沉痛的哀思!希望天堂里没有杀戮!
已经有几天没有来这里写东西了,并不是我停滞了,而是上了一个更高的台阶!这几天刚好接到一个制作多格式阅读器的任务,很是开心,终于可以真正的实战了。
计划是对:txt、jpg、png、doc、pdf、mp3、mp4(等多媒体格式)全部可看的阅读器。
一开始肯定先搞简单的txt格式的。首先申明我不太喜欢用storyboard,画得好麻烦,还要设置来设置去的,我全部都用代码来实现控件,方便控制。所以我的框架就是一个主TableViewController然后导航到ViewController。框架打好后,就可以往里添代码了,(这也是我喜欢ios的一个主要原因,mvc模式运用的很好)
TableViewController很简单,实现方法都差不多,具体实现的细节就不说了。
ViewController有很多的方法,我一开始用的是横向烦书,用一个slider控制,其实这个方法较复杂,还需要自己计算页数和每页的字数,但是这个可以收藏页。
第二个方法,也是后来我采用的方法,是竖着上下拖拉,方法用TextView加载文本内容,然后再将TextView加载到ViewController的View里,这个方法实现较简单,而且无需自己计算文本的大小。
当然以上两种方法我都加了手势的控制,当单击屏幕时导航控制栏可以显示或隐藏。
我自己想着后面的doc、pdf和多媒体等显示肯定就很困难了,结果更简单,找到了ios的一个利器,预览接口。导入一个
#import <QuickLook/QuickLook.h>
然后再加一个接口<QLPreviewControllerDataSource>
再添加一个QuickLook.Framework
就可以使用接口里的方法来控制预览了,经过测试可以看以上的任何格式(只是txt的文字编码还需要修改,否则txt如果是中文看的是乱码)
解释一下预览里一些主要方法的使用:
- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller
{}
这个简单,就是返回需要预览显示的条目数,这个和TableView里的- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{}
- (id <QLPreviewItem>)previewController: (QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
{}
这个就是预览的主要方法了,很简单,将需要预览的文档的完整路径作为返回值就可以了,这个和TableView里的- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{}这个类似。
当然预览接口里还有很多的方法值得研究怎么去使用,后面如果使用到了也写上来。
后面有时间把代码传上来。
- 第一个实用程序---多格式阅读器制作
- 百度阅读器-支持超多文档格式的免费阅读器
- 我的第一个python程序-新浪新闻阅读器
- 第一个Android 程序的源代码: TxtReader文本阅读器
- 第一个Android 程序的源代码: TxtReader文本阅读器
- 开博记念及附上第一个android工程:Txt文本阅读器
- 制作第一个 iOS 应用程序
- Asp+Rss阅读器制作
- 制作我的第一个根文件系统
- 怎么制作你的第一个机器人
- 本人的第一个JSP制作过程
- 第一个网站的制作过程记录
- WordPress主题制作-第一个WordPress主题
- 怎么制作你的第一个机器人
- 制作自己的第一个报表
- 制作第一个网页的代码
- 用Django制作第一个网页
- 使用jaxrs制作第一个REST
- android平台下使用点九PNG技术
- Web开发者应该了解的WebKit基础知识
- ExAllocatePoolWithTag 中文翻译
- 达内CEO受邀出席第四届中国国际服务外包交易博览会
- 如何在Eclipse中如何自动添加注释和自定义注释风格
- 第一个实用程序---多格式阅读器制作
- 现有的DRM数字版权保护技术大全
- Sizeof与Strlen的区别与联系(转)
- Solr 安装脚本说明
- wxtreelistctrl swig interface
- MySQL bug 1 error:no query specified
- C++ 基本数据类型的处理[截至C++入门经典Page 80]
- windows下apache配置多个站点
- MySQL连接查询