Несколько цветов, нарисованных для NSBezierPath в цикле

У меня есть следующий код в методе 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 ответ

Решение

Наконец я нашел решение или хотя бы обходной путь - я поставил декларацию

   let point = NSBezierPath()

во внутренний цикл "х", и он работает как ожидалось. Не уверен, что это наиболее эффективное и правильное решение, поэтому любые дальнейшие предложения приветствуются.

Другие вопросы по тегам