drawRect 画一条带有大阴影的细线



情况

我通过CGContextAddLineToPointCGContextStrokePath画了一条细线。我通过CGContextSetShadowWithColor添加了红色阴影。

期望的行为

无论我为模糊设置什么值,红色阴影都太弱了。我希望红影要强得多。

注意

带有红色阴影的白线放在图像的顶部,而不是平面颜色,所以我不能使用平面颜色来伪造它。

此外,白线可以弯曲(我使用CGContextAddQuadCurveToPoint)。

我尝试了什么

CGContextSetLineWidth,我发现增加宽度会使红色阴影更加明显。然而,白线当时太粗了。

然后,我尝试使用较大的线宽将绘图与阴影分成两部分。当我尝试只用[[UIColor clearColor] setStroke]画阴影时,阴影根本没有被绘制出来。

然后我尝试只用[[UIColor colorWithRed:1 green:0 blue:0 alpha:0.1] setStroke]画阴影,但是在笔触上有一个 alpha 也会影响阴影的 alpha,所以阴影仍然太弱了。

我尝试遵循iOS核心图形:只绘制CGPath的阴影,但我得到了一个奇怪的效果,不仅我的阴影没有显示,而且线条从红色淡入黑色。我不确定发生了什么。

帮助将不胜感激。

我最终遵循了CGContextDrawRadialGradient For Non-Circular Glow。基本上,我多次在自己上面重新绘制线条,直到光芒看起来足够强烈。我还对其进行了栅格化,希望性能打击不会太苛刻。

最新更新