首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否完全删除NSBezierPath?

是否完全删除NSBezierPath?
EN

Stack Overflow用户
提问于 2020-02-29 14:59:52
回答 1查看 73关注 0票数 0

在我的代码中,我有一个使用以下代码在屏幕上绘制线条的函数:

代码语言:javascript
复制
  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()
    }


}

但是,当我尝试通过使用以下命令绘制一个白色矩形来重置显示时:

代码语言:javascript
复制
func clear(){

        NSColor.white.setFill()
        bounds.fill()

    }

这些线仍然存在。我试图通过为path设置一个全局变量并更改我的函数来实际返回path,这样我就可以在函数外部访问它:

代码语言:javascript
复制
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

}

但是我找不到一种方法来重新绘制路径来摆脱它。

EN

回答 1

Stack Overflow用户

发布于 2020-02-29 15:37:14

将您的bezierPath (在本例中为path )设置为空,这将清除旧的bezier路径,然后调用[self setNeedsDisplay]。或者,您可以在path上使用removeAllPoints并调用[self setNeedsDisplay]

快乐编码=)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60462749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档