私のアプリケーションのビューの1つの背景として、私はかなり単純な長方形の枠をその枠の中に描画したいと思います。これは本質的に長方形の勾配です:フレームの周りの黒い線が白く10-20ピクセルほど白くなります。残念ながら、Core Graphicsは角勾配(CGGradient
またはCGShading
)を提供しません。だから私は最高のアプローチが何になるのだろうかと思っています。私に発生Quartz 2D/Core Graphicsでこの図を完成させる最も良い方法は?
2:
- 同心四角形の一連を描き、各次の1色が薄く、かつそれぞれの側に1ピクセルによってインセット。私はより簡単なアプローチは考えられませんが、私はすべての勾配計算を自分で行う必要があり、多くのグラフィックス操作が必要になります。
CGGradient
を線形モードで各側に1回使用します。しかし、これがうまくいくためには、最初に両側に台形のクリッピング領域を設定して、グラデーションがコーナーではさまれるようにする必要があると思います。
がはこれを行うためになでるパスを使用する方法である必要がありますが、それぞれの側に異なる向きだパターンを定義する方法がありますように、それは思われないように思えます。
エッジ毎CGGradientを使用すると、より速くなりますが、それはまだあまりにも遅いです場合は、キャッシュとしてUIImageを使用することができます(一度UIImageに描き、その後、必要なときにビューに画像を描画) – rpetrich
うん私はどのようなアプローチをとっていても、結果をイメージにキャッシュするのは良い考えであると思います。しかし、私はアプリでPNGを出荷するのではなく、手作業で図面をやるという考えのようなものです。 –