我想在系列中创建一组动画。 例如iOS系列动画系列
淡入2秒
旋转2秒
淡出2秒
什么是实现这一目标的最佳途径?我试图使用CAAnimation小组,但似乎并行地为其动画数组制作动画。我想做一个动画1,然后做动画2,然后做动画3(系列)
我想在系列中创建一组动画。 例如iOS系列动画系列
淡入2秒
旋转2秒
淡出2秒
什么是实现这一目标的最佳途径?我试图使用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
淡入和淡出工作正常 - 旋转不会发生。我在Radians 6.28中指定了360度的旋转角度 - 任何建议。? – OneGuyInDc
啊,首先你应该用'M_PI'来代替pi,然后再乘以2.不是6.28。其次,因为2π弧度与0相同,它不会旋转。将旋转分为两部分。一轮旋转到M_PI,另一轮旋转到2 * M_PI,您将不得不更新时间。 – Fogmeister
现在,你通常会通过animateKeyframesWithDuration
使用UIView
块动画。指定6秒的动画持续时间,然后将三个调用分别添加到addKeyframeWithRelativeStartTime
,分别从相对起始时间0,0.333和0.666开始,每个持续时间为0.333,并在这三个动画块中执行适当的动画。
使用动画组,但致命的每个动画,直到前应该已经结束。 – rckoenes