2016-01-22 75 views
2

我已經添加幾行代碼:如何更改UIBezierPath背景顏色?

var radius: CGFloat = UIScreen.mainScreen().bounds.width - 60 
    let path: UIBezierPath = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: UIScreen.mainScreen().bounds.width, height: UIScreen.mainScreen().bounds.height), cornerRadius: 0) 

    let circlePath: UIBezierPath = UIBezierPath(roundedRect: CGRect(x: 30, y: (UIScreen.mainScreen().bounds.height - radius)/2 - (navigationController?.navigationBar.frame.height)!, width: radius, height: radius), cornerRadius: radius) 

    path.appendPath(circlePath) 

,但它給了我這樣的結果

enter image description here

我怎樣才能讓我的圈子裏的背景顏色 - clearColor()?

我這個嘗試之一:

UIColor.whiteColor().setFill() 
circlePath.fill() 

但它並沒有任何意義

+0

爲什麼它沒有任何意義? –

+0

@ A-Live這就是我想知道的:) –

回答

5

試試這一個,

 var radius: CGFloat = 50 
     let path: UIBezierPath = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: 50, height: 50), cornerRadius: 0) 

     let circlePath: UIBezierPath = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: radius, height: radius), cornerRadius: radius) 

     path.appendPath(circlePath) 

     let fillLayer = CAShapeLayer(); 
     fillLayer.path = path.CGPath; 
     fillLayer.fillColor = UIColor.redColor().CGColor; 
     yourView.layer.addSublayer(fillLayer) 

通路。沒有顏色,層有顏色。 您需要根據路徑創建圖層,並將其添加到您的視圖圖層,如上代碼所示。

+0

它的工作原理!謝謝! –

+0

不客氣。享受快速編程 –

+0

它的工作原理!謝謝! – Marin

0

試試這個:

let context = UIGraphicsGetCurrentContext(); 

CGContextSetFillColorWithColor(context, UIColor.whiteColor().CGColor); 
+0

沒有什麼變化 –

+0

呼叫circlePath.fill()最後 –

+0

雖然這可能會回答這個問題,但最好能提供一些解釋爲什麼它會這樣做。 –