在UIBezierPath的两侧应用阴影

时间:2012-11-30 13:45:54

标签: ios drawing core-graphics uibezierpath

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

要绘制它,我使用:

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

我看到我可以使用CGContextSetShadowWithColor(),但即使如此,我也不确定如何使用它,因为这里是strokeWithBlendMode的CGPath参考中的内容:

  

此方法会自动保存当前的图形状态   绘制并恢复完成时的状态,因此您不必这样做   自己保存图形状态。

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

此致

1 个答案:

答案 0 :(得分:3)

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