我正在画画。我得到流畅的线条,我可以改变图纸的颜色。但我找不到如何在该线上应用阴影。
要绘制它,我使用:
[path strokeWithBlendMode:[path blendMode] alpha:1.0];
我看到我可以使用CGContextSetShadowWithColor()
,但即使如此,我也不确定如何使用它,因为这里是strokeWithBlendMode
的CGPath参考中的内容:
此方法会自动保存当前的图形状态 绘制并恢复完成时的状态,因此您不必这样做 自己保存图形状态。
所以如果我可以使用它,我真的不知道在哪里放CGContextSetShadowWithColor()
或其他任何东西。
此致
答案 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
并通过将其设置为路径属性来绘制路径。这将很容易让你添加一个只影响你的路径的阴影。