0

CTLineGetStringIndexForPositionコアテキストについて質問があります。

私はこのようなテキストを持っています:

Question: Hello, how are you today?
Answer: I am fine thank you
Question: great day isn't it?
...

上記のテキストでは、「質問:」という単語ごとに属性を設定して、タップ可能にしました。私はこのすべてのテキストをUITableviewセルに配置しています。質問と回答のある同様のセルがたくさんあります。セルの1つにある「質問:」という単語をタッチすると、取得したインデックスは正しいです。を下にスクロールすると、UITableview前のような別のテキストが表示されます。「質問:」をタップすると、インデックスが正しくありません。

これが私がインデックスを実装する方法です。

index = CTLineGetStringIndexForPosition(line,CGPointMake(lineOrigins[i].x + pnt.x, pnt.y));

助けていただければ幸いです。

4

1 に答える 1

0

あなたはどこpntから来たのか説明していませんが、それはおそらく間違っています。CTLineGetStringIndexForPositionテキストスペース内の各行の原点を基準にした位置を取ります(これは通常、おそらく予想されるものとは逆になります)。これにアプローチする方法の例については、CoreTextとタッチを使用してクリック可能なアクションを作成するを参照してください。

于 2013-01-11T02:46:42.993 に答える