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 に答える