2015-12-03 39 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

相關問題