에 일련의 애니메이션을 만들고 싶습니다. 예를 이초 이초 iOS stack 시리즈의 애니메이션
이를 달성하는 가장 좋은 방법은 무엇입니까
에 대한페이드를위한
회전 이초
위한에서페이드를 들어 ? CAAnimation 그룹을 사용하려고 시도했지만 애니메이션 배열을 병렬로 애니메이션하는 것으로 보입니다. 애니메이션 1을하고 애니메이션 2를 실행 한 다음 애니메이션 3을 수행합니다. (시리즈)
에 일련의 애니메이션을 만들고 싶습니다. 예를 이초 이초 iOS stack 시리즈의 애니메이션
이를 달성하는 가장 좋은 방법은 무엇입니까
에 대한페이드를위한
회전 이초
위한에서페이드를 들어 ? CAAnimation 그룹을 사용하려고 시도했지만 애니메이션 배열을 병렬로 애니메이션하는 것으로 보입니다. 애니메이션 1을하고 애니메이션 2를 실행 한 다음 애니메이션 3을 수행합니다. (시리즈)
이와 같은 모든 애니메이션에는 블록 기반 애니메이션을 사용해야합니다. animateKeyFrames
블록이 완벽 할 것 같은 애니메이션에 대한
// set duration for the entire sequence of animations
[UIView animateKeyFramesWithDuration:6
delay:0
options:0
animations:^{
// add fade in keyframe
// starts at 0% lasts for 33% of animation
[UIView addKeyFrameWithRelativeStartTime:0
relativeDuration:0.333
animations:^{
view.alpha = 1.0;
}];
// add rotation key frame
// starts at 33% lasts for 33% of animation
[UIView addKeyFrameWithRelativeStartTime:0.333
relativeDuration:0.333
animations:^{
view.transform = CGAffineTransformMakeRotation(rotationAngle);
}];
// add fade out key frame
// starts at 66% lasts for 33% of animation
[UIView addKeyFrameWithRelativeStartTime:0.666
relativeDuration:0.333
animations:^{
view.alpha = 0.0;
}];
}
completion:nil];
@Rob! 끝났어, 고마워. – Fogmeister
페이드 인 및 페이드 아웃이 잘 작동합니다. 회전이 발생하지 않습니다. 360도에 대해 회전 각도를 라디안 6.28로 지정합니다 - 제안 사항. – OneGuyInDc
아, 먼저 pi에'M_PI'를 사용하고 2에 2를 곱해야합니다. 6.28. 둘째, 2π 라디안은 0과 같기 때문에 회전하지 않습니다. 회전을 두 개로 나눕니다. 한 번 M_PI로 회전하고 다른 회전을 2 * M_PI로 지정하면 타이밍을 업데이트해야합니다. – Fogmeister
요즘 일반적으로 animateKeyframesWithDuration
을 통해 UIView
블록 애니메이션을 사용합니다. 애니메이션 기간을 6 초로 지정한 다음 에 3 회의 호출을 추가합니다. 상대 시작 시간은 0, 0.333 및 0.666으로 시작 시간은 각각 0.333이며 3 개의 애니메이션 블록에서 적절한 애니메이션을 수행합니다.
이전이 종료해야 할 때까지 애니메이션 그룹하지만 치명적인 각각의 애니메이션을 사용합니다. – rckoenes