2015-12-03 76 views
1

我正在研究在视图上绘制形状的项目。用于创建形状并添加到视图中的UIBezierPath如何在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() 

我的问题是:我怎样才能通过改变一下它的形状的颜色?

回答

2

我认为这是在drawRect方法?只需更新strokeColor,然后在视图上调用setNeedsDisplay(),这将再次触发drawRect的呼叫。

就个人而言,我会将strokeColor置于didSet的财产中,而不是drawRect方法的局部变量。然后,当我更新strokeColor,它会自动触发视图的重新划分:

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

我如何使用变色后加入的看法? – James

+0

那么,我假设你会保留对这个自定义视图的引用,比如'customView'。然后你可以做一些事情:'customView.strokeColor = UIColor.redColor()'或者你有什么。 – Rob

相关问题