添加到 Swift 中的视图后如何更改 UIBezierPath 的颜色?
How to change the color of a UIBezierPath after added on View in Swift?
我正在从事一个在视图中绘制形状的项目。 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()
我的问题是:如何通过单击更改形状的颜色?
我假设这是在 drawRect
方法中?只需更新 strokeColor
,然后在视图上调用 setNeedsDisplay()
,这将再次触发 drawRect
的调用。
就我个人而言,我会把 strokeColor
和 didSet
放在 属性 中,而不是 drawRect
方法的局部变量。然后,当我更新strokeColor
时,它会自动触发视图的重绘:
var strokeColor: UIColor? {
didSet { setNeedsDisplay() }
}
我正在从事一个在视图中绘制形状的项目。 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()
我的问题是:如何通过单击更改形状的颜色?
我假设这是在 drawRect
方法中?只需更新 strokeColor
,然后在视图上调用 setNeedsDisplay()
,这将再次触发 drawRect
的调用。
就我个人而言,我会把 strokeColor
和 didSet
放在 属性 中,而不是 drawRect
方法的局部变量。然后,当我更新strokeColor
时,它会自动触发视图的重绘:
var strokeColor: UIColor? {
didSet { setNeedsDisplay() }
}