0

와 경로를 따라 애니메이션과 함께 IBOutlet 연결 :내보기 두 imageViews에있는 CAKeyframeAnimation

IBOutlet UIImageView *ship; // X/Y = 130/82, W/H = 61/50 
IBOutlet UIImageView *planet;// X/Y = 87/173, W/H = 147/128 

나는 타원 경로를 따라 내 배 이미지를 애니메이션한다 할 노력하고있어 모든 (행성 이미지 생성) 이에 대한 :

CAKeyframeAnimation *orbit = [CAKeyframeAnimation animation]; 
orbit.keyPath = @"position"; 
orbit.path = CFAutorelease(CGPathCreateWithEllipseInRect(planet.bounds, NULL)); 
orbit.duration = 4; 
orbit.additive = YES; 
orbit.repeatCount = HUGE_VALF; 
orbit.calculationMode = kCAAnimationPaced; 
orbit.rotationMode = kCAAnimationRotateAuto; 

[ship.layer addAnimation:orbit forKey:@"orbit"]; 

코드가 내 배 이미지, 내 행성 이미지의 외부 애니메이션을 수동으로 사용하여 내가 이렇게이 문제를 해결하는 것입니다이다의 문제 :

CGRect boundingRect = CGRectMake(-100, 30, 200, 200); 
orbit.path = CFAutorelease(CGPathCreateWithEllipseInRect(boundingRect, NULL)); 

내 행성이 켜져있는 경우 X/Y = -100/30을 사용하는 이유 X/Y = 130/82? planet.layer.bounds 또는 planet.frame과 같이 이미지로 직접 수행하는 다른 방법이 있습니까?

답변

0

행성 경계를 사용하여 경로를 작성하기 때문에 경로는 행성 위치와 관련이 있지만 우주선이 같은 지점에 있지 않으므로 해당 위치에서부터 이동합니다.

한 애니메이션을

ship.center = CGPointMake(87, 173); 
+0

놀라운를 추가하기 전에이 행성의 기원에 배를 이동하는 것입니다 해결하는 빠른 방법! 코드가 훌륭하게 작동합니다! – LettersBa