当前位置: 首页 > news >正文

进什么网站接模具做qq钓鱼网站在线生成器

进什么网站接模具做,qq钓鱼网站在线生成器,网站开发前台后台怎么交互,哪个网站可以找人做橱柜六个月前在这个YHEpubDemo阅读器的基础上做了一些优化,这里做一下记录。 1.首行缩进修复 由于分页的存在,新的一页的首行可能是新的一行,则应该缩进;也可能是前面一页段落的延续,这时候不应该缩进。YHEpubDemo基于XDS…

六个月前在这个YHEpubDemo阅读器的基础上做了一些优化,这里做一下记录。

1.首行缩进修复

由于分页的存在,新的一页的首行可能是新的一行,则应该缩进;也可能是前面一页段落的延续,这时候不应该缩进。YHEpubDemo基于XDSReader,XDSReader目前存在新页首行没有缩进的问题。

修复方案如下:

原来预排版分页后将每一页的富文本设置给XDSReadView,这样就失去了排版的连续性。现在改为将整个章节的富文本设置给XDSReadView,并且对该页需要显示的文本范围进行布局。

在XDSReadView.m的reloadView底部加上以下代码:

CGRect rect = UIEdgeInsetsInsetRect(self.readTextView.bounds, self.readTextView.edgeInsets);DTCoreTextLayoutFrame *layoutFrame = [self.readTextView.layouter layoutFrameWithRect:rect range:_pageRange];self.readTextView.layoutFrame = layoutFrame;

因为前面我们已经给readTextView设置了整个章节的富文本:

self.readTextView.attributedString = self.readAttributedContent;

因此我们这里要根据布局区域的大小和布局文本的范围,使用layouter来产生一个layout frame。这样产生的布局是具有连续性的。如果仍然使用原来分页的方式的话,需要判断当前页第一行开始处,是否位于上一页的段落中。如果不在其中,而是新的段落,就要获取上一页段落的样式中的headIndent,将其设置给当前页第一行样式中的firstLineHeadIndent。

2.CSS rem修复

XDSReader基于DTCoreText,DTCoreText有自己的css和HTML解析器,但是不支持css的rem特性,这样会导致字体大小有问题。由于DTCoreText没有提供root element上下文,目前暂时将rem当em处理,虽然会有一些误差,但不至于字体大小变1pt。

3.树形目录

根据epub规范,我们是可以解析获得任意多级的目录的。考虑到目录可以折叠展开,当我们获得了树形数据结构后,我们可以使用BFS(宽度优先遍历)来实现目录的打平:

- (void)reloadData
{self.catalogs = [NSMutableArray arrayWithArray:CURRENT_BOOK_MODEL.catalog.children];NSMutableArray *q = [NSMutableArray arrayWithArray:CURRENT_BOOK_MODEL.catalog.children];while (q.count > 0) {XDSCatalogueModel *top = q[0];[q removeObjectAtIndex:0];if(top.isExpand){[q addObjectsFromArray:top.children];NSInteger idx = [self.catalogs indexOfObject:top];if(idx == NSNotFound){idx = -1;}[self.catalogs insertObjects:top.children atIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(idx+1, top.children.count)]];}}[self.tableView reloadData];
}

首先我们将一级目录节点加入临时数组和结果数组,如果当前临时数组数组不为空,则取出第一个,并且从临时数组中移除。如果这个节点是展开的,就把这个节点的子节点加入临时数组。现在我们从结果数组中找到这个节点的位置,将它的子节点按顺序插入后面。像这样往复前面的操作,直到临时数组为空为止。最终我们得到了一个平坦的列表。

4.增加页码

增加页码就是在预排版和分页时,需要记录每一个章节的页码范围,每一页的文字范围等,然后据此计算页面所在的页码,以及页码所在的文字范围等。

5.textblock背景色修复

源码中会给textblock设置一个难看的深蓝色的背景色,在我们的修复中会首先尝试获取textblock的背景色,没有的话才设置为白色:

 CGColorRef color = [textBlock.backgroundColor CGColor];if(!color){color = [[UIColor whiteColor] CGColor];}

6.其他

另外对阅读进度记录,添加note也做了一些修复。增加了水平滚动翻页类型。

最终的效果:

 

 源码:GitHub - Mamong/YHEpubDemo: Epub 阅读器

 后续考虑使用Swift重写,并将epub解析部分抽取出来。

http://www.yayakq.cn/news/785941/

相关文章:

  • PHP MySQL 网站开发实例网站开发项目周期的
  • 石家庄企业网站制作国外效果图网站
  • 外贸出口公司网站建设方案wordpress设置只显标题
  • 网站建设经济效益安阳县地图
  • 无锡外贸网站制作东莞网站定制开发
  • 大学做机器人比赛的网站论坛广州市建筑集团有限公司
  • 诏安县城乡规划建设局网站上海做网站待遇
  • 网站链接加标签网站开发 xmind
  • 网站设计的背景专门做美剧的网站
  • 网站开发设计用asp.net做后台网站
  • 亚马逊站外推广平台有哪些wordpress邀请码露兜
  • 织梦手机网站怎么安装教程视频虚拟主机建设网站两个
  • 化妆品网站建设策划书空包网站怎么做的
  • 北京建设信息网站漫画网站建设
  • 游戏门户网站 织梦辽宁建设工程质量监督站网站
  • 在网站上有中英切换怎么做安徽富通建设有限公司网站
  • 做音乐网站代码重庆网页设计美工
  • 建站平台最便宜西安小程序制作
  • 深圳微信网站运营最大的网站开发公司
  • 甘肃网站建设哪家便宜商丘手机网站制作
  • 网站模板在线制作wordpress 前端开发
  • 网站ul优化网站被人抄袭怎么办
  • 养老院网站建设的费用app定制哪里找
  • 企业网站seo怎么做wordpress添加自定义字段面板
  • wordpress手机版怎么做朝阳seo
  • 青岛网站建设微动力建设网站的网站江苏
  • 营销型网站制作哪家好麻将app开发公司
  • 整站建设和网站优化搜点济南网站建设
  • 宁波网站建设销售如何进入优容网站
  • 北京网站整站优化淘宝关键词搜索排名