gpt4 book ai didi

swift - CGGradient 现在在 UIBazierPath 上绘制精确的颜色

转载 作者:行者123 更新时间:2023-11-28 05:55:21 26 4
gpt4 key购买 nike

我正在使用 CGGradiant 绘制一个 gardiant 3/4 cirlce,使用从红色到黄色到绿色的三种颜色。但是 CGGradiant 总是从淡黄色而不是红色开始颜色。我正在使用它,因为我在 drawLinearGradient 中给出了起点/终点。但不知道该怎么做。下面是代码和附加的结果。任何建议都会有所帮助。

     let path1 = UIBezierPath(arcCenter: center,
radius: radius-20,
startAngle: startAngle,
endAngle: endAngle,
clockwise: false)

let strokedPath = path1.cgPath.copy(strokingWithWidth: strokeWidth, lineCap: .butt, lineJoin: .miter, miterLimit: 0)
ctx!.addPath(strokedPath)
ctx?.clip()
let red = UIColor(red: 234.0/255.0, green: 34.0/255.0, blue: 34.0/255.0, alpha:1)
let green = UIColor(red: 254.0/255.0, green: 187.0/255.0, blue: 3.0/255.0, alpha:1)
let blue = UIColor(red: 69.0/255.0, green: 207.0/255.0, blue: 51.0/255.0, alpha:1)

let gradient = CGGradient(
colorsSpace: CGColorSpaceCreateDeviceRGB(),
colors: [red.cgColor, green.cgColor,blue.cgColor] as CFArray,
locations: [0,0.5,1]
)

context!.drawLinearGradient(
gradient!,
start: CGPoint(x: 20, y: 20),
end: CGPoint(x: rect.width-10, y: rect.height-10),
options: []
)

Gradiant circle

最佳答案

您的渐变类型不正确。现在渐变从左上角开始,向右下角移动。这称为线性渐变。

Linear gradient

这就是为什么您在左上角看到红色,在右上角和左下角看到黄色,在右下角看到绿色。

你想要的是一个圆锥渐变,类似于下图。

Conic gradient

不幸的是,CGGradient 没有定义创建它的简单方法(如 this SO page says ),因此请使用推荐的框架之一或使用术语“iOS 锥形渐变”的谷歌。

关于swift - CGGradient 现在在 UIBazierPath 上绘制精确的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51642704/

26 4 0
文章推荐: Javascript 不返回样式属性
文章推荐: html - 将 .gif 拖放到
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com