根据给定的富文本和指定的frame,来处理文本的排版,返回排版后的String数组
NSString boundingRect是计算并返回当前富文本的CGRect,无法满足要求
其核心是Core Text.
Core Text是一种高级的底层技术,用于布置文本和处理字体。
Core Text布局引擎高性能,本质是基于C语言的一套API。
好了,扫盲完毕。
UIFont lineHeight会返回固定的高度,如果是空行或者是各种编码的文本,文本的真实高度其实是会有略微的误差的
Core Text 层次结构
计算每行的行高:
var ascent: CGFloat = 0
var descent: CGFloat = 0
var leading: CGFloat = 0
CTLineGetTypographicBounds(line, &ascent, &descent, &leading)
还有一个需要注意的点,在CTLine中,Emoji占用两个长度单位,在String中只占用一个长度单位