2

UIScrollView にテキストの CTFrame 列をいくつか配置し、以下の画像に示すように、テキストを選択して強調表示できる選択ツールを作成しました。

選択範囲をクリックできるようにしたいので、長方形は CTFrame 上の 50% の不透明度を持つ UIButton です。

問題は次のとおりです。何らかの理由で、ボタンの TouchUpInside イベントがトリガーされず、ハイライトが CTFrame の下に配置された場合、より良い効果があると思いますが、ボタンはイベントを受信しないと思います。

問題を解決するためのアイデア、つまり、テキストの下に選択マークを付けてクリック可能にするアイデアはありますか?


テキストの強調表示の例を次に示します。

CTFrame でのテキスト選択

4

2 に答える 2

2

CTFrameをUIScrollViewにどのように配置しましたか?CTFrameはUIViewサブクラスではありません。どこに描きますか?UIScrollビューのコンテンツサイズも確認してください。

UIButtonを使用することはお勧めできません。CoreGraphicsを使用して直接描画することをお勧めします。タッチはUIView自体で処理してから、適切なテキストに変換する必要があります。を使用CTFrameGetLineOrigins()して正しい線を見つけ(Y原点をチェックして)、次にを使用CTLineGetStringIndexForPosition()して線内の正しい文字を見つけます(点から線の原点を引いた後)。

于 2012-08-07T13:48:34.113 に答える
0

タップジェスチャレコグナイザーを使用できると思います。タップすると、タップポイントが強調表示されたセクションの右側にあるかどうかを確認するだけです。また、タップジェスチャレコグナイザーはUIScrollViewで機能すると思います(他のジェスチャとは異なります)。

于 2012-08-23T23:26:22.810 に答える