2010-07-20 5 views
7

는이 코드CATransform3DRotate하고있는 UIImageView

CABasicAnimation *animation; 
animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
animation.duration = 1; 
animation.toValue = [NSNumber numberWithFloat:M_PI]; 
animation.fromValue = [NSNumber numberWithInt:0]; 
[square.layer addAnimation:animation forKey:@"rotation"]; 

와 함께 UIImage보기 애니메이션을하고있어 모든 잘 작동하지만 내 배열이 애니메이션의 끝에서 자신의 원래 위치를 취할.

[square.layer setTransform:CATransform3DRotate(HERE, -M_PI, 0, 0, 0)]; 

그리고 내가 대신 "여기"의 작성 모르겠어요 : 나는 레이어 속성으로 보였다 발견. 제발 도와 주실 수 있나요? 감사합니다.

답변

3

CATransform3DRotate()은 첫 번째 매개 변수로 회전을 적용 할 변환을 사용합니다. 당신이 당신의 층을 변환 회전 찾고 있다면, 당신은 사용하는 것이 당신이 겪고있는 문제가있는 경우 말했다

[square.layer setTransform:CATransform3DRotate(square.layer.transform, -M_PI, 0, 0, 0)]; 

그 애니메이션의 끝에서 다시 시작 위치로 레이어 바보, 모든 애니메이션의 removedOnCompletion 속성을 NO로 설정하고 fillMode 속성을 kCAFillModeForwards으로 설정해야합니다.

+0

많은 브래드! – Pierre