5

今、画面に絵を描いています。滑らかな線が得られ、図面の色を変更できます。しかし、その線に影を適用する方法が見つかりません。

それを描くために、私は使用します:

[path strokeWithBlendMode:[path blendMode] alpha:1.0];

使用できることCGContextSetShadowWithColor()がわかりましたが、 の CGPath リファレンスでstrokeWithBlendMode次のように述べられているため、使用方法がわかりません。

このメソッドは、描画前に現在のグラフィックス状態を自動的に保存し、描画が完了したときにその状態を復元するため、グラフィックス状態を自分で保存する必要はありません。

だから、それをどこに置くべきか、またはそれを使用できるかどうかは本当にわかりませんCGContextSetShadowWithColor()

よろしく

4

1 に答える 1

3

使用したい場合はCGContextSetShadowwithColor()、ベジェパスをビューに描画する方法を変更して、表現を に描画する必要がありCGPathますCGContext。以下に例を示します。

UIBezierPath *path;     // this is your path as before
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddPath(context, path.CGPath);
CGContextSetLineWidth(context, 2.0);
CGContextSetBlendMode(context, path.blendMode);
CGContextSetShadowWithColor(context, CGSizeMake(1.0, 1.0), 2.0, [UIColor blackColor].CGColor);
CGContextStrokePath(context);

これを行う別の方法は、新しいパスを作成し、CAShapeLayerそれを path プロパティとして設定してそのパスを描画することです。これにより、パスのみをシャドウするシャドウを簡単に追加できます。

于 2012-12-05T10:04:12.533 に答える