iOS利用贝塞尔曲线和CAShapeLayer创建横向带动画柱状
2016-06-28 本文已影响1084人
JasonEVA
//创建出CAShapeLayer
self.shapeLayer= [CAShapeLayer layer];
//self.shapeLayer.frame = self.view.frame;//设置shapeLayer的尺寸和位置
self.shapeLayer.fillColor= [UIColor clearColor].CGColor;//填充颜色为ClearColor
//设置线条的宽度和颜色
self.shapeLayer.lineWidth=30.0f;
self.shapeLayer.strokeColor= [UIColor greenColor].CGColor;
//创建出贝塞尔曲线
UIBezierPath*circlePath = [UIBezierPath bezierPath];
[circlePath moveToPoint:CGPointMake(20,200)];
[circlePath addLineToPoint:CGPointMake(200,200)];
//让贝塞尔曲线与CAShapeLayer产生联系
self.shapeLayer.path= circlePath.CGPath;
//添加并显示
[self.view.layer addSublayer:self.shapeLayer];
// Do any additional setup after loading the view.
CABasicAnimation*pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
pathAnimation.duration=1.0f;
pathAnimation.timingFunction= [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
pathAnimation.fromValue=@0.0f;
pathAnimation.toValue=@(1);
[self.shapeLayer addAnimation:pathAnimation forKey:@"strokeEndAnimation"];