首先熟悉一下BezierPath的用法
定义path,此处用CGRect为例
let path = UIBezierPath(rect: CGRectMake(100, 100, 100, 100))
再定义一个Layer
let myLayer = CAShapeLayer()
将path赋给layer,再加上一些其它属性
myLayer.path = path.CGPath myLayer.fillColor = UIColor.magentaColor().CGColor myLayer.strokeColor = UIColor.blackColor().CGColor
最后添加
view.layer.addSublayer(myLayer)
运行起来得到⬇️效果
其中path有很多设置方法,下面尝试其它形状
let path = UIBezierPath(roundedRect: CGRectMake(100, 100, 100, 100), cornerRadius: 10)
let path = UIBezierPath(roundedRect: CGRectMake(100, 100, 100, 100), cornerRadius: 50)
let path = UIBezierPath(ovalInRect: CGRect(x: 100, y: 100, 100, height: 200))
下面也是画圆的path,设置了startAngle和endAngle,注意此处用的是CGFloat!
let path = UIBezierPath(arcCenter: view.center, radius: 50.0, startAngle: 0.0, endAngle: CGFloat(M_PI * 2), clockwise: true)
稍稍改动一下
let path = UIBezierPath(arcCenter: view.center, radius: 50.0, startAngle: 0.0, endAngle: CGFloat(M_PI), clockwise: true)
clockwise是顺时针的意思,改为false试试
let path = UIBezierPath(arcCenter: view.center, radius: 50.0, startAngle: 0.0, endAngle: CGFloat(M_PI), clockwise: false)
这里的startAngle和endAngle都用弧度制表示,下图为方便参考