在我的代码中,我有一个使用以下代码在屏幕上绘制线条的函数:
func drawLine (pointArray:[[[Double]]]) -> NSBezierPath{
var path:NSBezierPath = NSBezierPath()
let color = NSColor(red:0.0, green: 1.0, blue:0.0, alpha: 1.0)
color.set()
for i in 0...(pointArray.count - 1){
path.move(to: NSPoint(x: pointArray[i][0][0], y: pointArray[i][0][1]))
path.line(to: NSPoint(x: pointArray[i][1][0], y: pointArray[i][1][1]))
path.lineWidth = 50.0
path.stroke()
}
}但是,当我尝试通过使用以下命令绘制一个白色矩形来重置显示时:
func clear(){
NSColor.white.setFill()
bounds.fill()
}这些线仍然存在。我试图通过为path设置一个全局变量并更改我的函数来实际返回path,这样我就可以在函数外部访问它:
var path:NSBezierPath = NSBezierPath()
func drawLine (pointArray:[[[Double]]]) -> NSBezierPath{
let color = NSColor(red:0.0, green: 1.0, blue:0.0, alpha: 1.0)
color.set()
for i in 0...(pointArray.count - 1){
path.move(to: NSPoint(x: pointArray[i][0][0], y: pointArray[i][0][1]))
path.line(to: NSPoint(x: pointArray[i][1][0], y: pointArray[i][1][1]))
path.lineWidth = 50.0
path.stroke()
}
return path
}但是我找不到一种方法来重新绘制路径来摆脱它。
发布于 2020-02-29 15:37:14
将您的bezierPath (在本例中为path )设置为空,这将清除旧的bezier路径,然后调用[self setNeedsDisplay]。或者,您可以在path上使用removeAllPoints并调用[self setNeedsDisplay]
快乐编码=)
https://stackoverflow.com/questions/60462749
复制相似问题