我是核心文本新手。有没有办法找出 NSAttributedString 中的某个 NSRange 字符是否在多行上(CTLine)?
我正在做的是设置 NSAttributedString,然后使用该字符串创建框架 setter 。字符串的长度可以不同,我想知道如何查找范围(即短语)是否在多行上。因为它是一个不同长度的字符串,所以如果可以的话,我宁愿不设置每一行。
谢谢!
最佳答案
因此,您需要使用以下函数来获取该行的:
从框架 setter 获取 CTFrameRef 后,您需要调用:
CFArrayRef lines = CTFrameGetLines (frame);
然后要查看有多少行,请计算数组中的行数:
CFIndex numLines = CFArrayGetCount(lines);
如果您需要知道一行(本例中为第 0 行)中字符的确切范围(来自原始字符串),请使用:
CFRange range = CTLineGetStringRange(CFArrayGetValueAtIndex( lines, 0));
关于iphone - NSRange 的多个 CTLine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9690662/