2011-09-01 3 views
14

UIImageview 공의 이미지와 함께 계속 회전하려고하는 동안 문제가 있습니다. 나는이 공을 중심 축에서 계속 회전시키고 싶다. CGAffineTransform을 사용해 보았지만 제대로 작동하지 않았습니다.회전 UIImageView 지속적으로

도와주세요!

+0

당신이'UIImageView' 내부의 공을 회전해야합니까? 그렇다면'UIImageView' 자체의 애니메이션 메소드를 사용하는 것을 고려하십시오. – Saphrosit

답변

4

당신이로 변환을 사용하는 경우 그것은 작동합니다 : 나는 작업 솔루션의 일부 sample code 업로드 한

itemToRotate.transform = CGAffineTransformRotate(itemToRotate.transform, currentAngle); 

. 논리를 추가하여 자동으로 회전 시키십시오 ...

+0

링크가 작동하지 않습니다 : | –

+0

죄송합니다 ... CloudApp 계정으로 삭제 되었습니까? XO가 호스팅 된 곳입니다. – tipycalFlow

80

이것은 오래된 Q 일지 모르지만 주제의 검색 결과 상단에 있습니다. 여기에 더 잘라 건조 솔루션입니다 : (QuartzCore를 가져올 수 있는지 확인/QuartzCore.h)

CABasicAnimation *rotation; 
rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
rotation.fromValue = [NSNumber numberWithFloat:0]; 
rotation.toValue = [NSNumber numberWithFloat:(2*M_PI)]; 
rotation.duration = 1.1; // Speed 
rotation.repeatCount = HUGE_VALF; // Repeat forever. Can be a finite number. 
[yourView.layer addAnimation:rotation forKey:@"Spin"]; 

그런 다음, 정지 제거하려면/애니메이션을 다시 : (정지 된 장소 방법에 대한 의견을 참조) 신속한에서

[yourView.layer removeAnimationForKey:@"Spin"]; 

:

let rotation = CABasicAnimation(keyPath: "transform.rotation") 
rotation.fromValue = 0 
rotation.toValue = 2 * M_PI 
rotation.duration = 1.1 
rotation.repeatCount = Float.infinity 
view.layer.addAnimation(rotation, forKey: "Spin") 
+0

어떤 보석입니까? thanks –

+0

@Christopher 애니메이션의 중간에있는 애니메이션 키를 제거하는 Swasey는 변환 된 상태가 아닌 원래 상태로 뷰를 렌더링합니다. 변형을 보존하는 방법은 없습니까? – tGilani

+1

@tGilani, 변환을 유지하려면 CABasicAnimation을 설정할 때'rotation.removedOnCompletion = NO; '를 추가하십시오. 그러면 애니메이션의 프리젠 테이션 레이어가 표시됩니다. iOS 애니메이션에서 사용되는 여러 레이어에 대한 자세한 내용은이 게시물이 도움이된다는 사실을 발견했습니다. [link] (http://stackoverflow.com/a/11515749/1114876). – adamup