首页 > 应用开发 > IT综合 > 读书软件源码,实现书籍阅读的其他功能
NSLayoutManager 会根据加入的
NSTextContainer 不断分走文字, 直到分完为止, 这时候读书软件源码可以使用
layoutManager.glyphRange(for: textContainer) 获取
NSTextContainer 对应的文字范围
range, 之后就可以根据这个
range 进行文字分割
读书软件源码改变颜色不需要重新尽心分页操作, 直接操作
UITextView 的
attributedText 和原始
NSAttributedString 就行
注意, 方法为
addAttribute, 而不是
setAttribute, 后者会导致其他信息被清空
对
UITextView 的
attributedText 和原始
NSAttributedString 的
font 设置为新字体, 再重新进行分页操作, 重新设置单页显示视图即可
UITextView 内间距请通过
textContainerInset 设置间距, 与分页时的参数保持一致, 单独设置
contentInset 不保证显示正确
直接在根视图添加点击手势, 设置代理后, 根据点击区域判断行为 这样可以避免
UIPageViewController 的翻页手势被遮挡
请自主做好手势冲突的处理, 不然就是一片乱
由于分页流程主要在主线程上, 所以被分页的数据最好不要过大, 单章单章分页就刚刚好
每个
NSTextContainer 的 frame 值都是被
NSLayoutManager 粗略计算过的, 与你设置
NSTextContainer 的 size 值略有出入, 有时候大些, 有时候小些, 但误差绝度不会超过一个字符的高度. 所以, 苹果建议我们在设置
UITextView 的时候, 给这个
NSTextContainer 预留一定的高度......
还有字体问题, 因为系统有些字体对中文支持不太好, 可能会对文字的大小计算失误, 请尽量使用以下支持中文的字体, 或其他支持中文的自定义字体:
可以添加分页中标记, 存在标识时, 下一页上一页代理中返回
nil
读书软件源码的具体判断逻辑请根据自身项目调整
可以尝试一下, 内存的飙升绝对酸爽, 我在模拟器上测试, 翻了几页直接飙到 150+ M, 目前的方案在模拟器上读书软件源码 整体内存占用最高稳定在 50 M 左右, 真机可以稳定在 20 M 左右
当然, 也有可能是我的方式有错误, 各位可以尝试各种方案, 但分页逻辑万变不离其宗
声明:本文由云豹科技转发自Norld博客,如有侵权请联系作者删除
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70002045/viewspace-2845680/ ,如需转载,请注明出处,否则将追究法律责任。