Нарисуйте прогресс, который растет - PullRequest
0 голосов
/ 05 мая 2020

В следующем коде я хочу нарисовать увеличивающийся индикатор выполнения. что мне следует вызвать в строке, помеченной

// what goes here?

Предположим, что код выполняется в основном потоке.

class View: UIView {
    func updateProgressBar(){

        var boxFrame = CGRect(x:10, y:10: width:100, height: 100)

        for _ in 0...<10 {

            let box = UIView(frame: boxFrame)
            box.backgroundColor = .blue
            addSubview(box)

            // What goes here?

            Thread.sleep(forTimeInterval: 2)
            boxFrame.origin.x = boxFrame.width
        }
    }
}

Каким будет ответ из следующего варианта и почему?

  1. setNeedsDisplay ()
  2. layer.draw (in: UIGraphicsGetCurrentConntext ()!)
  3. draw (bounds)
  4. Этот подход неверен. Это надо реализовать по-другому. например, с DispatchQueue.asyncAfter ()
...