首页 > 应用开发 > IT综合 > 搭建小说系统源码,如何实现读书的分页功能
TextKit 快速分页UIPageViewControlleriOS, iPadOS
也许还支持
Mac Calalyst ?
Swift
小说系统源码的章节内容分页视图中, 只要在返回单页显示视图的代理中返回
nil, 即可实现章节内容翻到最后一页时, 继续翻页翻到下一章节的逻辑
首先,
一定要先确定好 TextView 的大小与内容间距, 即
文字显示区域的大小, 这将严重影响到分页后的数据能不能正常显示
其次, 首行缩进最好用空格代替, 而不是用
NSParagraphStyle 的
firstLineHeadIndent 属性来实现, 否则会出现某段落从中间被分开, 下一页依然被缩进的情况
首行缩进的空格数量可用以下逻辑计算:
然后在每段前添加空格
这样就可以在每段首行添加一个合适的缩进了
接下来就是重点的分页了
第一步, 前期参数准备:
准备好处理完成的
NSAttributedString, 最好包含各种字体, 颜色, 格式等设置信息, 避免分页视图拿到数据后再次生成
NSAttributedString , 重复设置内容样式导致的分页不准的情况
准备好文字显示区域大小的参数
第二步, 开始分页:
准备数据:
分页循环:
CoreText 版本:
至此, 就得到了带有格式的全文
NSAttributedString, 和分页区域的
ranges
第三步, 显示分页数据,小说系统源码的章节内容分页视图中, 将单章的
NSAttributedString 和分到的
range 分配给每一个单页显示视图, 在
UITextView 中直接设置
attributedText 为
attributedString.attributedSubstring(from: range)
UITextView 的设置务必于分页循环时的
UITextView 保持一致
声明:本文由云豹科技转发自Norld博客,如有侵权请联系作者删除
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70002045/viewspace-2845678/ ,如需转载,请注明出处,否则将追究法律责任。