在swift中使用UIBezierPath绘制形状

时间:2015-10-19 08:14:06

标签: swift shapes uibezierpath

我不知道如何使用UIBezierPath绘制形状。但是我尝试了很多方法,但没有成功。

我想制作以下形状enter image description here

请帮忙

1 个答案:

答案 0 :(得分:5)

func drawSliceInView(view: UIView, startAngle: CGFloat, endAngle: CGFloat, radius: CGFloat)
{
    let centerPoint = CGPoint(x: view.frame.size.width / 2, y: view.frame.size.width / 2)
    let startValue = (startAngle * 2 * CGFloat(M_PI)) / 360 - CGFloat(M_PI_2)
    let endValue = (endAngle * 2 * CGFloat(M_PI)) / 360 - CGFloat(M_PI_2)

    let path = UIBezierPath(arcCenter: centerPoint, radius: radius, startAngle: startValue, endAngle: endValue, clockwise: true)
    path.addLineToPoint(centerPoint)
    path.closePath()

    let sliceLayer = CAShapeLayer()
    sliceLayer.path = path.CGPath
    sliceLayer.fillColor = UIColor.blueColor().CGColor
    sliceLayer.backgroundColor = nil
    sliceLayer.strokeColor = UIColor.whiteColor().CGColor
    sliceLayer.lineWidth = 2.0

    view.layer.addSublayer(sliceLayer)
}

用法示例:

drawSliceInView(self.view, startAngle: -30, endAngle: 90, radius: 50)
drawSliceInView(self.view, startAngle: 90, endAngle: 210, radius: 50)