1

2 つのビューがあり、それぞれのレイヤーを描画に使用したいと考えています。私の最初のビュー (これを と呼びますTextView) は、テキストでいっぱいのページに他なりません。と呼ぶもう 1 つのビューDrawViewは、描画が行われる場所です。ではTextView、レイヤーは PDF のテキストをビューに描画するために使用されます。例えば:

PDFの表示内容を表示

一方、DrawView のレイヤーは、カスタム描画が作成される場所です。(例: フリーフォームの描画、長方形など)

今私がしたいことは、 のDrawView描画されているかのように の描画を表示することです。このような:TextView

ハイライトされたテキスト

私がしたことは、TextView のサブビューとして DrawView を追加することでした。しかし、これが起こったことです:

色で覆われたテキスト

2番目の画像で使用されているようなものを使用してみkCGBlendModeMultiplyましたが、何も起こりません。誰でもこれを機能させる方法を教えてもらえますか? ありがとう。

注: 2 番目の画像が目的を達成した唯一の理由は、TextView のレイヤーである同じレイヤー内に四角形を挿入したためです。同じ効果を、TextView のサブビューである DrawView レイヤー内で実行したいと考えています。

4

1 に答える 1

1

ただのアイデア:

2 つではなく 3 つのレイヤーを使用できます。強調表示された領域は、レイヤー 1 (背面レイヤー) に配置できます。テキスト ドキュメントはレイヤー 2 (中間) に配置し、描画レイヤーはレイヤー 3 (フロント レイヤー) に配置できます。

レイヤー 3 の不透明度を中間値に設定して、レイヤー 2 にあるものがまだ見えるようにします。

ユーザーが描画するときは、レイヤー 3 を実際に描画を受け入れるビューにします。半透明なので中間層が見えます。touchesEnded が呼び出されたら、描画をレイヤー 1 にコピーします。レイヤー3から削除すると、目的が達成されるはずです。

それはあなたが考えていたことですか?

于 2012-07-16T03:34:16.747 に答える