用渐变抚摸 CGPath?

Posted

技术标签:

【中文标题】用渐变抚摸 CGPath?【英文标题】:Stroking a CGPath with a gradient? 【发布时间】:2012-10-19 17:03:24 【问题描述】:

我已经研究了一段时间了,作为一个初学者,我似乎无法完成它。我想要做的是一个简单的渐变,并用它来描边一个 CGPath。我尝试将 CGContextSetStokePattern 与 PNG 一起使用,线条宽度和一个像素高包含我想要的渐变,但这会平铺图案,而我宁愿让它像画笔一样沿着路径绘制。我能想到的最接近的东西是 Pokémon Ranger 的 Styler。

基本上,我希望我的线条从中间的一种颜色开始,然后在边缘向另一种颜色移动。可能有一种简单的方法可以做到这一点,但我一生都无法弄清楚如何做。

非常感谢任何可以帮助我的人。 :)

【问题讨论】:

【参考方案1】:

没有内置支持以这种方式抚摸路径。

您可以尝试通过多次描边路径来伪造它,每个描边的线宽都比前一个描边窄,颜色不同,阴影设置也可能不同。当然,反复抚摸它会比抚摸一次需要更长的时间。

【讨论】:

是的,我知道多次这样做确实有效。然而,有时我的路径很长,有很多点必须每秒绘制和更新很多次。我想我可以多次中风,缓存图像,然后只重绘新的片段。我可能会这样做。 好的。结束了你的想法。它运作良好,我只在路径上划了三下就逃脱了。如果我将线的长度限制在 ~150 点,它的运行速度足够快,我不必担心一段时间的性能,通过 Time Profiler。如果它开始滞后,我稍后会实现某种缓存(这不应该太难)。谢谢。

以上是关于用渐变抚摸 CGPath?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 CAGradientLayer 遵循 CGPath

带角度的 CAGradientLayer

将多个 CGPath 合并为一个路径

渐变层在视图中不可见

用HTML怎么在网页中实现图片渐变 应该怎么写?

怎样用css写线条左右渐变?