我有一个performSelector:withObject:afterDelay:
调用的方法,它执行持续时间的动画。所以在延迟之后,动画会运行但没有动画持续时间:
[self performSelector:@selector(animate:) withObject:[NSNumber numberWithInt:-1] afterDelay:4.0];
-(void) animate:(int) mode
{
[UIView animateWithDuration:0.2
delay:0.0
options:UIViewAnimationOptionCurveEaseIn
animations:^{
self.center = CGPointMake(160.0, 568.0 + mode*height/2);
}
completion:nil];
}
另外,我无法在completion:
中嵌套动画,因为它阻止了UI交互。
答案 0 :(得分:0)
我已经尝试过你的代码和动画持续时间很好但我认为你应该修复(int)模式部分。你不能以这种方式将NSNumber转换为int。你的方法必须是 - (void)animate:(NSNumber *)模式,然后你可以使用[mode intValue]强制转换为int。
答案 1 :(得分:0)
您不能将performSelector:withObject:afterDelay:
与animate:
一起使用,因为它的参数不是对象指针类型。