我怎样才能得到一个CGRect
从一个NSRange
对于使用 Core Text 渲染的文本?
我正在使用核心文本NSAttributedString
.
这是绝对的痛苦,但可以做到。
您需要使用以下命令获取框架中的所有线条CTFrameGetLines()
,检查它们的字符范围是否在您要查找的范围内CTLineGetStringRange()
, use CTLineGetTypographicBounds()
找出线条本身渲染的大小,然后使用CTLineGetOffsetForStringIndex()
确定范围的开始/结束字符的实际位置(如果该行只是所需范围的子范围)。
将所有这些结合起来并添加偏移量和高度等可以得到您想要的东西。注意CTLineGetImageBounds()
如果没有图形上下文,它就无法工作(而且,据我所知,无论如何它都非常昂贵),并且没有必要解决这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)