我正在尝试将最接近的字符的索引设为点。
下面的代码完全正常,因为我的文本对齐方式设置为左边,只要我将它向右或中心移动它就会给我错误的索引。在获得最接近某个点的索引时,考虑文本对齐的解决方案是什么?
CTLineRef line = (CTLineRef)[lines objectAtIndex:i];
index = CTLineGetStringIndexForPosition(line, point);
修改
我的文字对齐是通过添加一个段落样式来完成的,该样式的textAlignment设置为kCTCenterTextAlignment
答案 0 :(得分:4)
该点相对于线的原点(随着对齐而变化),因此您必须使用CTFrameGetLineOrigins
并将线的原点的x值添加到点的x值。