【发布时间】:2018-10-05 14:36:38
【问题描述】:
给定一个定义如下图路径的 CAShapeLayer,我想添加一个 CAGradientLayer 跟随形状层的路径。
例如,给定从黑色到红色的渐变:
- 右上角的圆形部分是黑色的,
- 如果滑块在 100,左上角会是红色的,
- 如果滑块位于 50,则滑块的一半将是黑色(如下所示),可见渐变将从黑色(右上角)变为底部的红黑色
我发现的每个以前的帖子实际上都没有回答这个问题。 例如,因为我只能添加轴向 CAGradientLayers,我可以这样做(下图),但您可以看到它不正确(左上角最终再次变黑)。如何使渐变实际上遵循路径/蒙版
【问题讨论】:
-
正如您所发现的,这个问题已经被问过很多次了——据我所知,从来没有人回答过。我开始认为这是不可能的……但也许这一次谜团会被破解!
-
我当然希望如此!一堆帖子提到了 CAGradientLayerType 仅具有 .axis 作为选项这一事实 - 但现在还有两个额外的(.radial 和 .conic)所以我充满希望,尽管仍然没有解决问题:O.
-
这可能值得一看:github.com/sfcd/SFProgressCircle
-
检查 awesome-gradient 以查找使用 CAGradientLayer 的 iOS 示例遵循 CGPath github.com/cruisediary/awesome-gradient
标签: ios swift quartz-graphics quartz-core