2015-12-03 3 views
1

Я работаю над проектом, который рисует фигуры на виду. UIBezierPath используется для создания фигур и их добавления.Как изменить цвет UIBezierPath после добавления в View в Swift?

var frame: CGRect = bounds 
var strokeColor: UIColor = UIColor.lightGrayColor() 
var ovalPath = UIBezierPath(ovalInRect: CGRectMake(frame.minX + floor((frame.width - 79) * 0.50000 + 0.5), frame.minY + floor((frame.height - 79) * 0.50000 + 0.5), 79, 79)) 
UIColor.whiteColor().setFill() 
ovalPath.fill() 
strokeColor.setStroke() 
ovalPath.lineWidth = 1.5 
ovalPath.stroke() 

Мой вопрос: Как я могу изменить цвет формы, нажав на нее?

ответ

2

Я предполагаю, что это в методе drawRect? Просто обновите strokeColor, а затем вызовите setNeedsDisplay() на вид, который снова вызовет вызов drawRect.

Лично я поставил strokeColor в собственность с didSet, а не локальную переменную drawRect. Затем, когда я обновляю strokeColor, он автоматически вызывает перерисовки зрения:

var strokeColor: UIColor? { 
    didSet { setNeedsDisplay() } 
} 
+0

Как использовать для изменения цвета после добавления на просмотр? – James

+0

Ну, я предполагаю, что вы сохраните ссылку на это пользовательское представление, например 'customView'. Тогда вы сделаете что-то вроде: 'customView.strokeColor = UIColor.redColor()' или что у вас есть. – Rob

Смежные вопросы