在循环中为NSBezierPath绘制多种颜色

时间:2016-10-01 06:44:29

标签: draw swift3 drawrect nsbezierpath nscolor

我在func draw(_ dirtyRect:NSRect)方法中有以下代码,但即使应该随机化,所有行都使用相同的颜色绘制。我读到它可能与fps有关但是有什么办法可以把它画成多彩的吗? 谢谢你的提示。

for y in 1...3 {
    for x in 1...20 {
        switch arc4random_uniform(5) {
            case 0:
                color = NSColor.red
            case 1:
                color = NSColor.purple
            case 2:
                color = NSColor.green
            case 3:
                color = NSColor.blue
            case 4:
                color = NSColor.yellow
            default:
                color = NSColor.yellow
            }
            point.move(to: NSPoint(x: x*10, y: y))
            point.line(to: NSPoint(x: x*10, y: y+100))
            color.setStroke()
            point.stroke()    
     }
}

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案或至少解决方法 - 我把声明

   let point = NSBezierPath()

进入内部" x"循环,它按预期工作。不确定它是否是最有效和最合适的解决方案,因此欢迎任何进一步的建议。