贝赛尔曲线是CoreGraphic的再次封装,简化了画图的步骤。它让你可以设定一个可以包含直线和曲线的路劲并且可以在你自定义的view里面渲染它。你使用这个类来为你的路劲初始化一些几何体。这路劲可以定义简单地形状,譬如矩形,椭圆,弧形,或者可以定义包含一些直线和复杂曲线分段组成的的混合的多边形,你也可以进一步使用这个类来渲染这个路劲在当前画布下。
CAShapeLayer类在它的坐标系里画一个立体的贝塞尔曲线。这个模型是混合在这个layer的内容和它的第一个子图层里。
#define degreesToRadians(x) (M_PI*(x)/180.0) //把角度转换成PI的方式
#define PROGREESS_WIDTH 80 //圆直径
#define PROGRESS_LINE_WIDTH 4 //弧线的宽度
- (void)shapLayer{
//使用贝赛尔曲线初始化一个path 是个圆形,参数分别是圆心、半径、开始的弧度、结束弧度、是否顺时针
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(200,100) radius:30. startAngle:degreesToRadians(-330) endAngle:degreesToRadians(30) clockwise:YES];
CAShapeLayer *shapLayer = [CAShapeLayer layer];
shapLayer.path = path.CGPath;
//透明度
shapLayer.opacity = 0.8;
//指定线的边缘是圆形
shapLayer.lineCap = kCALineCapRound;
//画线的填充颜色
shapLayer.strokeColor = [UIColor greenColor].CGColor;
//圆圈内的填充颜色
shapLayer.fillColor = [UIColor redColor].CGColor;
//画笔开始百分比
shapLayer.strokeStart = 0.1;
//画笔结束百分比
shapLayer.strokeEnd = 0.99;
//时间 //速度
shapLayer.speed = 0.1;
//线宽度
shapLayer.lineWidth = 4;
[self.view.layer addSublayer:shapLayer];
}