CAShapeLayer的strokeStart和strokeEnd属性
http://blog.sina.com.cn/s/blog_51a995b70102vdfe.html
keyPath = strokeStart 动画的fromValue = 0,toValue = 1
表示从路径的0位置画到1位置,由右向左消除
keyPath = strokeStart 动画的fromValue = 1,toValue = 0
表示从路径的1位置画到0位置,由左向右绘制
keyPath = strokeEnd 动画的fromValue = 0,toValue = 1
表示从路径的0位置画到1位置,由右向左绘制
keyPath = strokeEnd 动画的fromValue = 1,toValue = 0
表示从路径的0位置画到1位置,由左向右消除
注释: 动画的0-1(fromValue = 0,toValue = 1) 或1-0 (fromValue = 1,toValue = 0) 表示执行的方向 和路径的范围。
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(30,160)];
[path addLineToPoint:CGPointMake(300,160)];
CAShapeLayer *pathLayer = [CAShapeLayer layer];
pathLayer.frame = self.eraserAnimationLayer.bounds;
pathLayer.bounds = CGRectMake(0, 0, 320, 480);
pathLayer.path = path.CGPath;
pathLayer.strokeColor = [[UIColor blueColor] CGColor];
pathLayer.fillColor = nil;
pathLayer.lineWidth = 70.0f;
pathLayer.lineJoin = kCALineJoinBevel;
self.eraserPathLayer = pathLayer;
[self.view.layer addSublayer:pathLayer];
CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeStart"];
pathAnimation.duration = 2.0;
pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
pathAnimation.toValue = [NSNumber numberWithFloat:1.0f];
pathAnimation.delegate = self;
[pathAnimation setValue:@"eraser" forKey:@"id"];
[self.eraserPathLayer addAnimation:pathAnimation forKey:@"strokeStart"];