第一个实用程序---多格式阅读器制作

来源:互联网 发布:程序员面试刷题网站 编辑:程序博客网 时间: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{}这个类似。

当然预览接口里还有很多的方法值得研究怎么去使用,后面如果使用到了也写上来。

后面有时间把代码传上来。


0 0
原创粉丝点击