Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change UIBezierPath background color?

I have added these lines of code:

    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)

but it gives me this result

enter image description here

How can I make my circle background color - clearColor() ?

I tried this one:

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

But it did not make any sense

like image 991
John Doe Avatar asked Jan 22 '16 08:01

John Doe


1 Answers

Try this:

let 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.append(circlePath)

let fillLayer = CAShapeLayer()
fillLayer.path = path.cgPath
fillLayer.fillColor = UIColor.red.cgColor
yourView.layer.addSublayer(fillLayer)

Paths do not have color; layers have color.

You need to create a layer based on a path, and add it to the layer of your view as shown in the code above.

like image 182
Hitendra Solanki Avatar answered Sep 19 '22 10:09

Hitendra Solanki