首页 > 解决方案 > swift CAShapeLayer strokeColor 按渐变颜色

问题描述

嗨,我有一个圆形层需要 GradientColor 的颜色

我尝试了 ues CAGradientLayer 并像这样掩盖它

let gradientChargeLayer = CAGradientLayer()
    gradientChargeLayer.colors = CGColor.mColor
    gradientChargeLayer.frame = vShape.bounds
    gradientChargeLayer.locations = [0,1]
    gradientChargeLayer.startPoint = CGPoint(x: 0,y: 0.5)
    gradientChargeLayer.endPoint = CGPoint(x: 1,y: 0.5)
    gradientChargeLayer.mask = shapeLayer
    vShape.layer.addSublayer(gradientChargeLayer)

在此处输入图像描述

但我想要的是从笔画开始到结束的渐变色

    shapeLayer.path = circularPath.cgPath
    shapeLayer.strokeColor = UIColor.red.cgColor   <<< here 

谢谢

标签: swiftswift4swift5cashapelayer

解决方案


我相信你可以有不同的方法

  • 一,您可以制作一个外圈和内圈,然后将所需的路径/图层添加到外圈(这个圈比内圈大)两个圈子没有可见的笔划

  • 或者我可以建议您UIGraphigsImageRenderer使用 https://developer.apple.com/documentation/uikit/uigraphicsimagerenderer 这最后一个上下文可用于进行更高级的渲染context.cgContext.setStrokePattern,您可以添加 CGPattern 和颜色来尝试完成它

PD。对不起,如果我的英语很混乱


推荐阅读