Это пример из моего кода.Но ты получил идею.Вам нужно использовать CGAffineTransformConcat
, чтобы сшить несколько анимаций вместе.Вы можете сделать это -
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
angle = 0;
scaleFactor = 1;
startPoint.x = 60.0;
startPoint.y = 60.0;
CGAffineTransform scaleTrans = CGAffineTransformMakeScale(scaleFactor, scaleFactor);
CGAffineTransform rotateTrans = CGAffineTransformMakeRotation(angle * M_PI/180);
boxView.center = startPoint;
boxView.transform = CGAffineTransformConcat(scaleTrans, rotateTrans);
[UIView commitAnimations];
В iOS4 есть Анимация одного блока , которую вы можете использовать вместо двухблочной анимации.Документация Apple гласит, что анимация в одном блоке более плавная, плюс ее легко сшивать несколько анимаций одну за другой ...
ОБНОВЛЕНИЕ: Подумав более тщательно, вы можете сделать это -
[UIView animateWithDuration:0.3
delay:0
options:UIViewAnimationCurveEaseOut
animations:^{ /* first level of animation */
}
completion:^(BOOL finished){
}
];
Как видите, после завершения анимации вы можете запустить другую анимацию или очистить ее.Эта блочная анимация используется для объединения анимаций вместе ...