iOS基于CoreText实现的电子书阅读器
2016-10-06 本文已影响4991人
启发禅悟
之前写小说类相关的应用,需要电子书阅读器,在网上找了很久,觉得还是https://github.com/GGGHub/Reader 同学的最好用,所以就拿这个用了。
不过后来发现里面的书签,笔记的定位功能,以及字体变化等功能有点问题,造成阅读者的不愉快,所以特意Fork了一个版本做了相应的修改,大家如果有类似的问题,可以试试我修改后的版本,在这里
https://github.com/Inspirelife96/Reader
如果大家有更好的阅读器,请推荐给我,万份感谢:)
Reader
基于Core Text
实现的iOS客户端的电子书阅读器
。</br>
支持ePub与text格式
2016.10.02 更新 (我做的修改)
针对text小说的bug fix。
- 当字体变化时,小说有时候不会自动调整界面。
- 当字体变化时,还有小说的书签,笔记定位不准确,甚至程序崩溃。3.
大概思路:
- 当字体变化时,所有小说的章节都会基于新的字体重新调整,分页等。
- 记录笔记/书签文字开始位置的在整个章节中的下标位置,笔记/书签定位时,基于当前的字体分页,看当前的下标位置是否坐落在哪一页中,然后跳转到那一页。
2016.06.16 更新 (以下都是LiSiYuan写的,非常好的库,我自认为没有他的水平,大家可以好好学习)
添加对ePub格式的支持
部分功能实现效果
Paste_Image.png
关于Reader</br>
- 可以自动提取章节并生成目录
- 选取一段文字可进行复制,做笔记等功能
- 保存阅读进度,即使退出应用也可以继续之前的阅读
- 更改字体大小,进度跳转,主题更换等功能
- 支持
txt
与ePub
格式的电子书文件
安装与使用
安装
- 将
Reader
目录下的所有文件都添加到工程中</br> - 由于解压
ePub
文件,需要用到开源的.c文件
用于解压缩。所以使用时如果项目中有.pch文件
参考本项目中.pch
文件写法</br>
#ifdef __OBJC__
//在.pch中这里写引用的.h文件与宏
#endif
3.需要导入libz.tbd
库
使用
text文件</br>
LSYReadPageViewController *pageView = [[LSYReadPageViewController alloc] init];
NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"mdjyml"withExtension:@"txt"];
pageView.resourceURL = fileURL; //文件位置
pageView.model = [LSYReadModel getLocalModelWithURL:fileURL]; //阅读模型
[self presentViewController:pageView animated:YES completion:nil];
ePub文件</br>
LSYReadPageViewController *pageView = [[LSYReadPageViewController alloc] init];
NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"细说明朝"withExtension:@"epub"];
pageView.resourceURL = fileURL; //文件位置
pageView.model = [LSYReadModel getLocalModelWithURL:fileURL]; //阅读模型
[self presentViewController:pageView animated:YES completion:nil];
提示
之前安装过的下载最新版,应把之前安装的卸载后再安装
说明
对于有图片和定制样式的epub文件只显示纯文本信息,因为对epub每个章节的html文件直接转成字符串来处理,css样式与epub自带的本地图片没有做处理。