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

品牌官方网站建设健康义乌app

品牌官方网站建设,健康义乌app,银行crm系统,贵阳seo网站推广优化六个月前在这个YHEpubDemo阅读器的基础上做了一些优化#xff0c;这里做一下记录。 1.首行缩进修复 由于分页的存在#xff0c;新的一页的首行可能是新的一行#xff0c;则应该缩进#xff1b;也可能是前面一页段落的延续#xff0c;这时候不应该缩进。YHEpubDemo基于XDS…六个月前在这个YHEpubDemo阅读器的基础上做了一些优化这里做一下记录。 1.首行缩进修复 由于分页的存在新的一页的首行可能是新的一行则应该缩进也可能是前面一页段落的延续这时候不应该缩进。YHEpubDemo基于XDSReaderXDSReader目前存在新页首行没有缩进的问题。 修复方案如下 原来预排版分页后将每一页的富文本设置给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基于DTCoreTextDTCoreText有自己的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(idx1, 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://wiki.neutronadmin.com/news/185007/

相关文章:

  • 金融网站 源码wordpress小工具没有
  • 建设网站需要花钱吗网站后台找不到了怎么办
  • dede 网站打开慢做微信支付的网站多少钱
  • 咸阳网站建设电话北京网络
  • 遵义建设厅网站常见网页制作工具
  • 重庆公司章程在哪里打印如何对seo进行优化
  • android做网站wordpress mu 下载
  • 跨境电商购物网站网站建设优化项目
  • 设计网站下载2023年企业所得税税收优惠政策
  • 网站建设的技术团队电脑网页无法访问如何解决
  • 做视频在线观看网站广东圆心科技网站开发网站模板设计
  • 个人网站怎么做代码WordPress模版二次元
  • 建个电子商务网站多少钱如何用dw做网站前端
  • 淘客做自己的网站软件项目实施流程
  • 惠州淡水网站建设公司深圳网站设计公司怎么样
  • wdcp 网站备份wordpress4.7无法安装
  • ps做网站动图东莞营销型网站建站
  • wap网站设计规范什么是三合一网站建设
  • 公司的网站怎么建设360建筑网忘记登入密码了怎么办
  • 通过邮箱查注册网站网络推广是什么职位
  • 商城网站的功能学网站开发多少钱
  • seo矩阵培训东莞债优化
  • 查看网站外链代码wordpress 还原
  • 怎样建设网站是什么做网站的困难
  • 网站模板开发主要作用网站页面创意
  • 专业做财务公司网站济南市住房和城乡建设局官网
  • 华为云助力企业网站安全保障优秀企业网站案例
  • 网站seo工具wordpress 下载文件
  • 合肥有哪些做网站的公司wordpress前端
  • 网站开发的程序平台重点实验室网站建设的意义