3

描画プログラムを作成しました。画像をインポートして、さまざまな色とブラシ構成で注釈を付けることができます。

私の問題は、消去を許可する方法がわからないことです。これと同じアプリを Android 用に作成し、PorterDuffXferMode オブジェクトを使用して消去します。ここココアで似たようなものを見つけることができませんでした。

明らかな何かが欠けていますか?私はカカオヌーベです。

NSBezierPath と NSRectFill の組み合わせを使用して NSView に描画しています。

アップデート:

ここで応答を読む前に、元の NSView の下にネストされた NSView を使用するようにコードを変更しました。だから私の考えは、一番下のZオーダービューに背景画像を描画し、一番上のNSViewですべてのグラフィックを行うことでした。それはうまく描画されますが、私のトップビューでは、消去したい領域で NSClearRect を呼び出しており、最下層まで消去するのではなく白です。

最下層まで透けて見えないのはなぜですか?

CALayers の使用を検討するつもりですが、皆さんが書いた内容を理解するのに少し時間が必要です。前にも言ったように、私はオブジェクティブ C と Cocoa の初心者です。

4

1 に答える 1

0

描画環境(転送モード)がAndroidで正確にどのように機能するかはわかりませんが、Core Graphicsは標準およびPhotoshopスタイルのブレンドモードなどをすべて提供します.

予想される「消去」動作が実際に何であるかについてはあまり具体的ではありません。コンテキスト内の四角形をクリアするには、 を使用しますCGContextClearRect()。他のシェイプでクリアしたい場合は、この質問に示されているようにクリッピング マスクを設定します。

領域をクリアするよりも洗練された処理を行いたい場合 (たとえば、背景色、画像、またはパターンを再描画したい場合) は、画像マスクとブレンド モードを調べることができます。

于 2013-02-28T19:07:12.263 に答える