新浦京81707con > 首页 > 如何从零开始写一款书籍阅读器,小说阅读类A

原标题:如何从零开始写一款书籍阅读器,小说阅读类A

浏览次数:111 时间:2020-04-20

此前做过一款小说阅读类的APP,近年来特别花了好什么日期间整合治理了代码,以便让有要做相关APP的同室参谋一下。代码链接:LKReading

前言

奥门新萄京娱乐场,出于公司要支付一款小说类阅读应用程式,个中体会上特别主要的少数正是翻页效果。为了落到实处翻页效果,我询问了累累素材后接收使用了UIPageViewController。原因很简单,使用方便,成效强盛,开辟速度快。首先,我们先看看翻页效果图:

翻页效果展现图

一款书籍阅读器,要求以下成效手艺说的上相比较完好:

首要特征
  • TXT、Epub小说深入分析

  • 互连网小说加载

  • 仿真、滚动、无三种翻页情势

  • 切换字体大小不卡顿

  • 迅猛翻页不卡顿

  • 读书页背面管理

  • 图书数据本地化

结构

在选择UIPageViewController前,我们应超越搞领悟它的档次布局。(这里是自己在行使进度中的掌握,如有不对,接待建议)。

pageviewcontroller档期的顺序展示图

UIPageViewController作为子调整器加载在viewController上。作为文本调控器的容器,且提供翻页的卡通效果。

成立一个TextViewController,用来展现文本,装入pageViewController中。

就此,pageViewController只是提供三个翻页特效的器皿,真正显示在分界面上的是内部的TextViewController。到这里是本身对pageViewController有一个发端的敞亮。

  1. 文字页面展现,即书页;
  2. 页面之间的跳转动漫,即翻页动作;
  3. 能够在每一页上记录阅读进度,即书签;
  4. 可见自由选拔文字并标明,即笔记;
  5. 可以知道设置某本个性,如显示器亮度,字体大小,主体颜色等,即本性化设置。
中央落到实处

奥门新萄京娱乐场 1show.gif

翻阅类分界面非常多是选用 UIPageViewController 实现,它能给大家提供优秀的翻页体验,极其是虚假的翻页,省去比相当多专门的学业量。

使用

书籍阅读器

技术中央
  • 地面小说的剖释,最广大的txt拆解深入分析很简短,主如果用正则去相称章节关键字,然后划分章节。epub格式的小说剖判起来就有一些繁缛了,这里根本参考了Reader。
  • 开卷背面包车型地铁拍卖,在常规使用 UIPageViewController 阅读的时候,会开采阅读背面是刺眼的葡萄紫,特别是深夜的时候,客户体验非常糟糕。解决那个题目只是供给安装 UIPageViewController 的 isDoubleSided 属性为 true ,开启双页形式,那样每一回翻页的时候相应的代理会走三遍,第一遍为背面,第三回为正规下一页恐怕上一页的阅读面,然后把相应的翻阅面截图翻转设置为背面就能够。
  • 阅读字体切换的标题,有个别完毕方案在切换字体大小的时候会另行划分全部章节招致很卡,其实完全没要求,切换的时候只供给再行划分当前章节就好,然后记录一下字体大小、行间距等这么会潜濡默化分页的质量,阅读到下一章的时候再剖断是不是要求再行分页。
  • 网络小说的缓存战略,互联网小说都是一章一章下载的,为了给顾客提供精美的阅读经历,大家可以先行加载前后章节,所现在台在发出某一章的源委会提供 lastChapterId 和 nextChapterId,然后大家用那五个参数去做异步缓存。
  • 随笔缓存的主题素材,对于大气多少当地化大家经常采取数据仓库储存款和储蓄,本项目采纳的 Realm,使用的时候特意要小心只好在同叁个线程对叁个数目开展操作。
  • 翻阅翻页时下一页财富的拍卖,日常会记录下当前的读书地方,然后判别下一页是在本章照旧下一章,接着去数据库取相应的章节数据,如若没取到何况该书为网络小说,就带头下载章节,阅读页呈现加载动漫,直到下载完毕渲染出内容。整个工艺流程细节相当多,详细管理能够查阅源码。

1.初始化

- (instancetype)initWithTransitionStyle:(UIPageViewControllerTransitionStyle)style navigationOrientation:(UIPageViewControllerNavigationOrientation)navigationOrientation options:(nullable NSDictionary*)options

UIPageViewController 为我们提供了2种翻页样式,一种是拟真一种是滚动。只须求使用系统的布局方法重临二个UIPageViewController的指标。而且安装它的代理和数据源并把它步向到调节器中就足以了

pageViewController.delegate = self;

pageViewController.dataSource = self;

[self addChildViewController:pageViewController];

[self.view addSubview:pageViewController.view];

由此提供的set方法将textController装入pageViewController中,那么些set方法提供了一种体制,决定翻页是纵向或然横向。

typedef NS_ENUM(NSInteger, UIPageViewControllerNavigationDirection) {

UIPageViewControllerNavigationDirectionForward,//横向,像书一样

UIPageViewControllerNavigationDirectionReverse//纵向,像日历一样
};

BookTextController *readerController = [BookTextController new];//展示文本的控制器
    [_pageViewController setViewControllers:@[ readerController ]
                                  direction:UIPageViewControllerNavigationDirectionForward
                                   animated:NO
                                 completion:nil];

那篇小说带给的正是什么构建这样一款阅读器。(由于全部代码量十分大,所以自个儿只得说说自家的兑现思路再增添有个其他为主代码来验证,不会有太多的代码呈现。)

本文由新浦京81707con发布于首页,转载请注明出处:如何从零开始写一款书籍阅读器,小说阅读类A

关键词: 新浦京81707con 日记本 App Andro 小说

上一篇:循环引用问题,循环引用

下一篇:没有了