2011-04-10 3 views
0

보기 애니메이션을 사용하여 회전하지 않고보기를 중심점 주위로 이동하는 방법이 있습니까?iPhone 애니메이션 - 원을 그리는보기 이동

 
    A 

A C A 

    A 
+0

"똑똑한 바지"방법 : 한 단계에서 자신의 왼쪽 하단 모서리 주변을 회전시킬 수 있습니다. (또는 그 선을 따라 멀리 떨어져있는 다른 지점을 선호하는 경우). 그러나 ** 동시에 다른 레벨을 사용하여 중심을 중심으로 ** 다른 방향으로 동일한 각도로 회전시킵니다. ** 관람차는 ** 관람차 ** 방법입니다. – Fattie

답변

0

애니메이션 스레드를 넣고 수동으로 모든 프레임을 움직여서 내가 간 것은 맞지 않습니다.

3
#import <QuartzCore/QuartzCore.h> 
    #define degreesToRadians(deg) (deg/180.0 * M_PI) 

를 수동으로 실시 :

이 같은 애니메이션 뭔가
-(CGPoint)setPointToAngle:(int)angle center:(CGPoint)centerPoint radius:(double)radius 
{ 
    return CGPointMake(radius*cos(degreesToRadians(angle)) + centerPoint.x, radius*sin(degreesToRadians(angle)) + centerPoint.y); 
} 

:

int angle = 0; // start angle position 0-360 deg 
    CGPoint center = self.view.center; 
    CGPoint start = [self setPointToAngle:angle center:center radius:radius]; //point for start moving 
    CGMutablePathRef path = CGPathCreateMutable(); 
    CGPathMoveToPoint(path, NULL, start.x, start.y); 

    for(int a =0;a<4;a++) //set path points for 90, 180, 270,360 deg form begining angle 
    { 
     angle+=45; 
     expPoint = [self setPointToAngle:angle center:center radius:expRadius]; 
     angle+=45; 
     start = [self setPointToAngle:angle center:center radius:radius]; 
     CGPathAddQuadCurveToPoint(path, NULL,expPoint.x, expPoint.y, start.x, start.y); 
    } 

    CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; 
    pathAnimation.removedOnCompletion = NO; 
    pathAnimation.path = path; 
    [pathAnimation setCalculationMode:kCAAnimationCubic]; 
    [pathAnimation setFillMode:kCAFillModeForwards]; 
    pathAnimation.duration = 14.0; 

    [MY_VIEW.layer addAnimation:pathAnimation forKey:nil]; 

CGPathAddQuadCurveToPoint, 
CGPathAddCurveToPoint, 
CGPathAddArcToPoint, 
CGPathAddArc 

을보고 다른 사람

관련 문제