gpt4 book ai didi

ios - Swift - 如何绘制一条线,其中每个点都可以有单独的颜色

转载 作者:行者123 更新时间:2023-11-28 09:24:59 25 4
gpt4 key购买 nike

在 Swift 中如何绘制一条线,其中每个点都可以有不同的颜色?

假设我有一些数据传入,代表一行中每个点的颜色值。我怎样才能做到这一点?如果我使用 UIBezierPath,我有一个路径,我只能给路径一个颜色。对于我的情况,我必须制作 600 条路径(每个点一个路径)才能获得我想要的东西。

有没有更简单的方法?

非常感谢!

编辑:我尝试为每个创建一个 1x1 UIBezierPath 和一个 CAShapeLayer。它有效,但整个应用程序变得非常非常慢,所以必须有更简单或更快的方法,有人知道解决方案吗?

最佳答案

现在我被困在这里:

它确实有效,只要我更新我的二维数组和我的“开始”属性,它就会重新绘制 UIView,但这需要大约 5 秒。有谁知道更快的方法吗?

class CustomView: UIView {

public var context = UIGraphicsGetCurrentContext()

public var redvalues = [[CGFloat]](repeating: [CGFloat](repeating: 1.0, count: 500), count: 500)

public var start = 0
{
didSet{
self.setNeedsDisplay()
}
}

override func draw(_ rect: CGRect
{
super.draw(rect)
context = UIGraphicsGetCurrentContext()
for yindex in 0...499{
for xindex in 0...499 {
context?.setStrokeColor(UIColor(red: redvalues[xindex][yindex], green: 0.0, blue: 0.0, alpha: 1.0).cgColor)

context?.setLineWidth(2)
context?.beginPath()
context?.move(to: CGPoint(x: CGFloat(xindex), y: CGFloat(yindex)))
context?.addLine(to: CGPoint(x: CGFloat(xindex)+1.0, y: CGFloat(yindex)))
context?.strokePath()
}
}
}
}

关于ios - Swift - 如何绘制一条线,其中每个点都可以有单独的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45446141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com