我在CGPath
内绘制文字,为了对文字进行点击测试,我正在使用CTFrameGetLineOrigins
。这是文档所说的内容:
每个CGPoint是CTFrameGetLines返回的行数组中相应行的原点,相对于帧的路径的原点。
我如何找到框架路径的原点?我发现的例子都是在最初创建路径时保存路径的原点。我有两个问题:
CGPoint
之外我还要经过CGPath
。丑陋,但并非不可克服。答案 0 :(得分:0)
您可以使用CGPathApply
检查完整路径:
typedef struct {
CGPoint origin;
BOOL found;
} MySearchData;
void MyApplierFunction (void* info, const CGPathElement* element) {
MySearchData* searchData = (MySearchData *) info;
if (! searchData->found) {
searchData->origin = element->points[0];
searchData->found = YES;
}
}
CGPoint GetPathOrigin (CGPathRef path) {
MySearchData searchData = { CGPointZero, NO };
CGPathApply(path, (void *) &searchData, &MyApplierFunction);
return searchData.origin;
}