貌似 yytext 也实现了 Textkit 类似的功能,只是目前不维护了,跑了一个微博的 demo 还能继续研究,后面也发到这里。
想想要是用 SwiftUI 继续集成类似的功能,感觉有点怕怕的,果断新开项目来继续走,SwiftUI继续维护在简单的项目里好了。
Textkit
问题
行高偶然不一致
paragraphstyle 设置 lineheightmutiple,但是有的行高明显不够。
boundingRect(forGlyphRange 不准
2021-04-16
fixed
boundingRect(forGlyphRange 也就是func boundingRect(forGlyphRange glyphRange: NSRange, in container: NSTextContainer) -> CGRect
,得不到正确的 rect,我遇到的是文字超过一定长度后,稳定重现。2021-04-20
👆上面的问题,貌似不存在了,主要原因是特殊控制字符插入顺序有错乱导致的,终于搞定了。
参考
找到 SwiftyAttributes 用swift的方式来使用 attributedstring,如果有机会可以看看 enum 封装
竟然找到了这个神奇的标注方法,厉害了。太牛啤了SimpleFurigana
WWDC 2018:TextKit 最佳实践
Attributed string bullet points - Swift
Setting Text Margins
Regular Expressions for Japanese Text
JapaneseRegex.js
bonmot
Display japanese Text with furigana in UILabel
太牛啤SimpleFurigana
textkit实现FuriganaTextView
很像我的诉求自定义Making UILabel Accessible
SwiftyAttributes
文字背景,剔除空白Contour of a Union of Iso-Oriented Rectangles
NSAttributedString background color and rounded corners
Align text before a tab stop to the right, and after it to the left