iPhone核心动画-为NSBezierPath设置动画

iPhone核心动画-为NSBezierPath设置动画,iphone,core-animation,nsbezierpath,Iphone,Core Animation,Nsbezierpath,我想在屏幕上绘制路径时为其绘制动画,我假设核心动画是使用NSBezierPath的最佳方式,但我不确定如何实现这一点 基本上,我们的想法是让一条从a点到B点的路径从a点到B点慢慢地设置动画,直到路径到达B点。关于如何实现这一点的好教程将非常有用 您可以使用CGPath创建CAShapeLayer(例如,可以从UIBezierPath创建) 然后,CAShapeLayer的路径属性本身就可以设置动画,您还可以使用可设置动画的strokeStart和strokeEnd属性(从iOS 4.2开始提供)

我想在屏幕上绘制路径时为其绘制动画,我假设核心动画是使用
NSBezierPath
的最佳方式,但我不确定如何实现这一点


基本上,我们的想法是让一条从a点到B点的路径从a点到B点慢慢地设置动画,直到路径到达B点。关于如何实现这一点的好教程将非常有用

您可以使用CGPath创建CAShapeLayer(例如,可以从UIBezierPath创建)

然后,CAShapeLayer的路径属性本身就可以设置动画,您还可以使用可设置动画的strokeStart和strokeEnd属性(从iOS 4.2开始提供)创建更高级的动画

如何添加带有随动画显示的随机线的层的简单示例:

CAShapeLayer *l = [CAShapeLayer layer];
l.frame = self.view.bounds;
l.strokeColor = [UIColor redColor].CGColor;
CGPoint start = CGPointMake(arc4random()%300+10, arc4random()%400+40);
CGPoint end = CGPointMake(arc4random()%300+10, arc4random()%400+40);
UIBezierPath *path = [[UIBezierPath alloc] init];
[path moveToPoint:start];
[path addLineToPoint:end];
l.path = path.CGPath;
[path release];

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
animation.fromValue = [NSNumber numberWithFloat:0.0f];
animation.toValue = [NSNumber numberWithFloat:1.0f];
animation.duration = 3.0f;
[l addAnimation:animation forKey:@"myStroke"];
[self.view.layer addSublayer:l];

你能提供一些关于如何实现这一点的示例代码吗?