让我说清楚。我正在使用一系列由用户操作触发的动画。
只有当我执行performSelector时:afterDelay:如果在动画之后完成,它将不起作用。
如果我正在进行OS X开发,我不知道这个答案对我是否有用,但它可能是一个线索:https://stackoverflow.com/a/1078216/676822
有人能帮帮我吗? 感谢
答案 0 :(得分:0)
如果您想在动画结束时采取某些操作,相应的代码如下所示:
[UIView animateWithDuration:0.50 animations:^{
// your changes to animate here
} completion:^(BOOL completed) {
// your code after animation here
}];
animateWithDuration的其他几个变种允许动画本身的更多功能。
答案 1 :(得分:0)
从我可以收集到的内容来看,您正在尝试执行一系列动画,每个动画在开始之前都有延迟。因此,您可以将调用嵌套到performSelector:afterDelay:
,而不是使用animateWithDuration:delay:options:animations:completion:
来调用动画:
[UIView animateWithDuration:1.0f delay:2.0f options:UIViewAnimationOptionCurveEaseIn animations:^{
//your first animations
} completion:^(BOOL finished) {
[UIView animateWithDuration:1.0f delay:2.0f options:UIViewAnimationOptionCurveEaseIn animations:^{
//your second animations
} completion:^(BOOL finished) {
}];
}];
此方法接受额外的delay
参数,这听起来像你想要的。而且,由于你的第二个动画是在第一个完成块中,动画将按顺序发生。