如何在Swift中添加View后更改UIBezierPath的颜色?

时间:2015-12-03 00:04:56

标签: swift swift2 uibezierpath swift2.1

我正在处理一个在视图上绘制形状的项目。 UIBezierPath用于创建形状并添加到视图中。

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()

我的问题是:如何通过点击来改变形状的颜色?

1 个答案:

答案 0 :(得分:2)

我认为这是drawRect方法吗?只需更新strokeColor,然后在视图上调用setNeedsDisplay()即可再次触发drawRect

就个人而言,我将strokeColor放在一个didSet的属性中,而不是drawRect方法的局部变量。然后,当我更新strokeColor时,它会自动触发重绘视图:

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