Добавьте свойство с именем strokeColor
к вашему Canvas
:
class Canvas : UIView {
var strokeColor = UIColor.red {
didSet {
self.setNeedsDisplay()
}
}
...
}
Используйте strokeColor
в draw(rect:)
:
context.setStrokeColor(strokeColor.cgColor)
Затем в dizzy()
установитеcanvas 'strokeColor
to .blue
:
class ViewController: UIViewController {
var canvas = Canvas()
@objc func dizzy() {
canvas.strokeColor = .blue
}
}
Каждый раз, когда вы устанавливаете strokeColor
для Canvas
, он вызовет перерисовку, вызвав self.setNeedsDisplay()
в своем наблюдателе свойства didSet
,Новый вызов draw(rect:)
будет использовать новый цвет для перерисовки вида.