簡體   English   中英

Swift-如何在每個點可以具有單獨顏色的位置上畫一條線

[英]Swift - how to draw a line where each point can have an individual colour

在Swift中如何在每個點可以具有不同顏色的位置繪制一條線?

假設我收到了一些數據,它們代表一行中每個點的顏色值。 我該怎么做? 如果使用UIBezierPath,則有一個Path,並且只能為該路徑賦予顏色。 對於我的情況,我必須獲得600條路徑(每個點一個Path)才能得到我想要的東西。

有沒有更簡單的方法?

非常感謝你!

編輯:我試圖為每個創建一個1x1 UIBezierPath和CAShapeLayer。 它可以工作,但是整個應用程序變得非常非常慢,因此必須有一個更簡單或更快速的方法,有人知道解決方案嗎?

現在我被困在這里:

它實際上有效,一旦我更新了二維數組和“ start”屬性,它就會重新繪制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()
        }
    }
}
}

我認為沒有任何方法可以使用不同的設置繪制貝塞爾曲線路徑的不同分支。 單獨畫線可能是要走的路。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM