Я понимаю, что это более старый вопрос, но я подумал, что добавлю свой ввод.
Я создал класс для обработки многоступенчатой анимации, доступно здесь!
В настоящее время поддерживается только одна длительность и набор параметров, но я, вероятно, добавлю больше возможностей.
Вот как вы его используете:
// Create New Animation
MSAnimation * newAnimation = [MSAnimation newAnimationWithDuration:0.35 andOptions:UIViewAnimationOptionCurveEaseInOut];
// Add Sequence
[newAnimation addNewAnimationStage:^{
greenView.center = CGPointMake(greenView.center.x, greenView.center.y + 100);
}];
[newAnimation addNewAnimationStage:^{
greenView.center = CGPointMake(greenView.center.x + 100, greenView.center.y);
}];
[newAnimation addNewAnimationStage:^{
greenView.center = CGPointMake(greenView.center.x, greenView.center.y + 100);
}];
[newAnimation addNewAnimationStage:^{
greenView.center = CGPointMake(greenView.center.x - 50, greenView.center.y);
}];
[newAnimation addNewAnimationStage:^{
greenView.frame = CGRectMake(0, 0, 100, 100);
}];
// Animate Your Sequence With Completion
[newAnimation animateSequenceWithCompletion:^{
NSLog(@"All finished!");
}];
Дает вам:
![Animation Demo](https://i.stack.imgur.com/BJbZT.gif)