gpt4 book ai didi

ios - 每当有新数据可用时更新 UIView 的最佳方法

转载 作者:行者123 更新时间:2023-11-30 11:13:31 25 4
gpt4 key购买 nike

我有一个 UIView,我想在新数据可用时更新它。这是一些背景信息:我有一个数据结构,每当用户点击“开始”按钮时,它就会不断实时更新。数据结构随着时间的推移接收矢量数据,并且每隔几秒添加新的矢量数据。我尝试将矢量数据绘制到 UIView 上的方式是使用 CGPoints。我希望能够调用一个函数,为该函数提供一组 CGPoint,然后在将新数据添加到数据时在 UIView 上绘制线条结构。最好的方法是什么?

这是我到目前为止所拥有的,但没有任何线条绘制到 UIVIew 上:

class VectorDraw: UIView {

var origin: CGPoint = .zero
var point2: CGPoint = .zero


override func draw(_ rect: CGRect) {

//Declaring context and its properties (i.e its width and color)
let context = UIGraphicsGetCurrentContext()
context?.setLineWidth(3.0)
context?.setStrokeColor(UIColor.purple.cgColor)

//Context directions, what to do with the context a move - addLine = stroke
context?.move(to: origin)
context?.addLine(to: point2)

//Actually draws line
context?.strokePath()
print("Line drawn from origin at x: ", origin.x, "\tat y: ", origin.y)
print("To terminal point at x: ", point2.x, "\tat y: ", point2.y)
}
}

我的想法是在按下开始按钮时更改 CGPoints,然后调用vectorDraw.setNeedsLayout(),但 UIView 不会更新。唯一出现的线条是当我在应用程序打开时将 CGPoints 设置为不同的坐标时。

最佳答案

还有其他方法向 VectorDraw 提供坐标,并且您希望 VectorDraw 在每次坐标提供者更新时重绘?您必须向 VectorDraw 重新提供新坐标,然后调用 VectorDraw 上的 setNeedsDisplay() 函数来重新渲染 View

关于ios - 每当有新数据可用时更新 UIView 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51953151/

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