CoreText 图文混排

 基本原理 https://www.cnblogs.com/purple-sweet-pottoes/p/5109413.html

 CoreText(一):基本用法   https://blog.csdn.net/xiaoxiaobukuang/article/details/52368694

参考   https://www.cnblogs.com/XYQ-208910/p/6222931.html 

CoreText 图文混排 

CoreText进阶

 每一行是一个 Line , 每个 Line 中可能有多个 Run

1、图文混排
CTFrameRef  textFrame     // coreText 的 frame
CTLineRef   line          // coreText 的 line
CTRunRef    run           // line  中的部分文字

2、相关方法:
CFArrayRef CTFrameGetLines(CTFrameRef frame) //获取包含CTLineRef的数组
void       CTFrameGetLineOrigins(CTFrameRef frame,CFRange range,CGPoint origins[])//获取所有CTLineRef的原点
CFRange    CTLineGetStringRange(CTLineRef line) //获取line中文字在整段文字中的Range
CFArrayRef CTLineGetGlyphRuns(CTLineRef line)//获取line中包含所有run的数组
CFRange    CTRunGetStringRange(CTRunRef run)//获取run在整段文字中的Range
CFIndex    CTLineGetStringIndexForPosition(CTLineRef line,CGPoint position)//获取点击处position文字在整段文字中的index
CGFloat    CTLineGetOffsetForStringIndex(CTLineRef line,CFIndex charIndex,CGFloat* secondaryOffset)//获取整段文字中charIndex位置的字符相对line的原点的x值
原文地址:https://www.cnblogs.com/daxueshan/p/9253407.html