2011-11-01 4 views
3

화면에 그려지는대로 패스 드로잉을 애니메이션으로 만들고 싶습니다. Core Animation이 NSBezierPath 인 가장 좋은 방법이라고 가정하고 있지만이를 구현하는 방법은 잘 모르겠습니다.iPhone 코어 애니메이션 - NSBezierPath 애니메이션

기본적으로 아이디어는 점 A에서 점 B까지 경로가 B에 도달 할 때까지 A에서 B로 천천히 움직이는 것입니다.이 작업을 수행하는 방법에 대한 훌륭한 자습서는 유용 할 것입니다.

답변

3

CGPath를 사용하여 CAShapeLayer를 만들 수 있습니다 (예 : UIBezierPath에서 만들 수 있음).

그런 다음 CAShapeLayer의 경로 속성은 애니메이션 그 자체이며, 당신은 또한 (아이폰 OS 4.2부터 사용할 수) 애니메이션 strokeStart 및 strokeEnd 속성을 애니메이션으로 나타납니다 무작위 라인 레이어를 추가하는 방법에

간단한 예제를 사용하여 고급 애니메이션을 만들 수 있습니다 :

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]; 
+0

이 작업을 수행하는 방법에 대한 샘플 코드를 제공해 주시겠습니까? –

+0

완벽하게 저에게 감사드립니다. –