5

我目前正在屏幕上绘图。我得到流畅的线条,我可以改变我的图画的颜色。但我找不到如何对该线应用阴影。

要绘制它,我使用:

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

我看到我可以使用CGContextSetShadowWithColor(),但尽管如此,我不确定如何使用它,因为这是 CGPath 参考中所说的strokeWithBlendMode

此方法在绘制之前自动保存当前图形状态,并在绘制完成后恢复该状态,因此您不必自己保存图形状态。

因此,如果我可以使用它,我真的不知道该放在哪里CGContextSetShadowWithColor()或其他任何东西。

问候

4

1 回答 1

3

如果要使用CGContextSetShadowwithColor(),则需要更改将 bezierpath 绘制到视图的方式,以便将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路径并通过将其设置为路径属性来绘制路径。这将很容易让您添加一个只会影响您的路径的阴影。

于 2012-12-05T10:04:12.533 回答