swift - 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
谢谢
解决方案
我相信你可以有不同的方法
一,您可以制作一个外圈和内圈,然后将所需的路径/图层添加到外圈(这个圈比内圈大)两个圈子没有可见的笔划
或者我可以建议您
UIGraphigsImageRenderer
使用 https://developer.apple.com/documentation/uikit/uigraphicsimagerenderer 这最后一个上下文可用于进行更高级的渲染context.cgContext.setStrokePattern
,您可以添加 CGPattern 和颜色来尝试完成它
PD。对不起,如果我的英语很混乱
推荐阅读
- reactjs - ReactJS TS,“Readonly<{children?:ReactNode}> 和 Readonly 类型上不存在属性“匹配”
' - javafx - Javafx 使用超链接运行另一个类
- node.js - 如何在基于 Node JS 的应用程序中使用 Google Trends 的 Top Charts 功能
- reactjs - 如何在反应中处理多种形式
- c# - 优化实体框架(gridview 中每个模型的多个查询)
- vba - 将工作表上的值而不是公式复制到另一个工作表
- c++ - 如何在 C++ 中使用二叉树?
- javascript - 如果尺寸不同,请在购物车详细信息中分开产品
- nlp - 有没有办法并行使用 fastText 的单词表示过程?
- javascript - 如何使用异步和等待从订阅 API 调用中获取返回值