根据转载文章改写
动态 画从左到右的直线
UIBezierPath *path = [UIBezierPath bezierPath];
画曲线
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(20, 300)];
[path addQuadCurveToPoint:CGPointMake(300, 300)
controlPoint:CGPointMake(100, 100)];
path.lineCapStyle = kCGLineCapRound;
path.lineJoinStyle = kCGLineJoinRound;
path.lineWidth = 5.0;
CAShapeLayer *shaperLayer = [CAShapeLayer layer];
shaperLayer.path = path.CGPath;
shaperLayer.strokeColor = [UIColor redColor].CGColor;
shaperLayer.fillColor = [UIColor yellowColor].CGColor;
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:NSStringFromSelector(@selector(strokeEnd))];
anim.fromValue = @0;
anim.toValue = @1;
anim.duration = 1;
[shaperLayer addAnimation:anim forKey:NSStringFromSelector(@selector(strokeEnd))];
[self.view.layer addSublayer:shaperLayer];
转载文章
//view 是曲线的背景 view
UIView *view = [[ UIView alloc ] initWithFrame : CGRectMake ( 10 , 0 ,300 ,300 )];
view. backgroundColor = [ UIColor whiteColor];
[ self . view addSubview :view];
// 第一、 UIBezierPath 绘制线段
UIBezierPath *firstPath = [ UIBezierPath bezierPathWithOvalInRect : CGRectMake (0,0, 5 , 5 )];
CGPoint p1 = CGPointMake ( 0 , 0 );
CGPoint p2 = CGPointMake ( 300 , 0 );
[firstPath addLineToPoint :p1];
[firstPath addLineToPoint :p2];
UIBezierPath *lastPath = [ UIBezierPath bezierPathWithOvalInRect : CGRectMake (300,0, 0 , 0 )];
[firstPath appendPath :lastPath];
// 第二、 UIBezierPath 和 CAShapeLayer 关联
CAShapeLayer *lineLayer2 = [ CAShapeLayer layer ];
lineLayer2. frame = CGRectMake ( 0 ,50 ,320 ,40 );
lineLayer2. fillColor = [ UIColor yellowColor ].CGColor ;
lineLayer2. path = firstPath. CGPath ;
lineLayer2. strokeColor = [ UIColor redColor ]. CGColor ;
//第三,动画
CABasicAnimation *ani = [ CABasicAnimation animationWithKeyPath : NSStringFromSelector ( @selector (strokeEnd))];
ani. fromValue = @0 ;
ani. toValue = @1 ;
ani. duration = 5 ;
[lineLayer2 addAnimation :ani forKey : NSStringFromSelector ( @selector (strokeEnd))];
[view. layer addSublayer :lineLayer2];