Objective C - 核心文本在位置查找索引?

时间:2011-07-26 02:56:34

标签: objective-c core-text ctlineref

我正在尝试将最接近的字符的索引设为点。

下面的代码完全正常,因为我的文本对齐方式设置为左边,只要我将它向右或中心移动它就会给我错误的索引。在获得最接近某个点的索引时,考虑文本对齐的解决方案是什么?

CTLineRef line = (CTLineRef)[lines objectAtIndex:i];
index = CTLineGetStringIndexForPosition(line, point);  

修改

我的文字对齐是通过添加一个段落样式来完成的,该样式的textAlignment设置为kCTCenterTextAlignment

1 个答案:

答案 0 :(得分:4)

该点相对于线的原点(随着对齐而变化),因此您必须使用CTFrameGetLineOrigins并将线的原点的x值添加到点的x值。