1

我正在尝试获取最接近某个点的字符的索引。

下面的代码工作得非常好,因为我的文本对齐设置为向左,只要我将其更改为向右或居中,它就会给我错误的索引。在获得最接近点的索引时考虑文本对齐的解决方案是什么?

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

编辑:

我的文本对齐是通过添加一个具有 textAlignment 设置的段落样式来完成的kCTCenterTextAlignment

4

1 回答 1

4

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

于 2011-07-26T03:12:06.513 回答