如何更改UIBezierPath背景颜色?

时间:2016-01-22 08:13:17

标签: ios swift 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()

但它没有任何意义

2 个答案:

答案 0 :(得分:10)

试试这个:

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)

路径没有颜色;层有颜色。

您需要根据路径创建图层,并将其添加到视图图层,如上面的代码所示。

答案 1 :(得分:0)

试试这个:

let context = UIGraphicsGetCurrentContext();

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