0

次のコードがあります。

CGContextSetShadowWithColor(context, CGSizeMake(0, 1.5), 
                       2.0, [UIColor blackColor].CGColor);

私の理解に基づいて影を適用するには、CGContextFillPath を呼び出す必要があります。フィルパスを呼び出さずにこれを行う他の方法はありますか?

4

1 に答える 1

3

いいえ。影を生成するには、ストロークまたはパス メソッドを使用してグラフィックス コンテキストで何かを描画する必要があります。Apple からのドキュメントは次のとおりです。

影のしくみ

Quartz の影は、グラフィックス状態の一部です。関数 CGContextSetShadow を呼び出して、グラフィック コンテキスト、オフセット値、およびぼかし値を渡します。シャドウイングを設定すると、描画するすべてのオブジェクトに、デバイスの RGB カラー スペースで 1/3 のアルファ値を持つ黒色で描画されたシャドウが表示されます。つまり、影は {0, 0, 0, 1.0/3.0} に設定された RGBA 値を使用して描画されます。

関数 CGContextSetShadowWithColor を呼び出し、グラフィックス コンテキスト、オフセット値、ぼかし値、および CGColor オブジェクトを渡すことによって、色付きの影を描画できます。色に指定する値は、描画する色空間によって異なります。

CGContextSetShadow または CGContextSetShadowWithColor を呼び出す前にグラフィックス状態を保存すると、グラフィックス状態を復元することでシャドウイングをオフにすることができます。また、影の色を NULL に設定して影を無効にします。

于 2013-01-21T22:08:50.240 に答える