在我的代码中,我希望else部分之前的部分是动画的,但是部分在else部分内部。 if语句的第一部分是在第一次调用函数时执行的,在该部分内部有一个定时器设置,它将在1秒后调用该函数,这是动画的一半,但我不想要这个最后一部分要动画我只想让它立即发生。
-(void)performAnimationToRight
{
if (!timer){
[UIView beginAnimations:@"Move" context:nil];
[UIView setAnimationDuration:2];
[UIView setAnimationBeginsFromCurrentState:YES];
card0.center = CGPointMake(card0.center.x+388, card0.center.y);
card1.center = CGPointMake(card1.center.x+388, card1.center.y);
card2.center = CGPointMake(card2.center.x+388, card2.center.y);
[UIView commitAnimations];
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(performAnimationToRight) userInfo:nil repeats:NO];
}else{
card2.frame = CGRectMake(-330,card2.frame.origin.y, card2.frame.size.width, card2.frame.size.height);
timer = nil;
}
}
如何防止此部分变得动画化。
card2.frame = CGRectMake(-330,card2.frame.origin.y, card2.frame.size.width, card2.frame.size.height);
感谢。
答案 0 :(得分:0)
使用积木怎么样?
[UIView animateWithDuration:2 animations:^{
card0.center = CGPointMake(card0.center.x+388, card0.center.y);
card1.center = CGPointMake(card1.center.x+388, card1.center.y);
card2.center = CGPointMake(card2.center.x+388, card2.center.y);
}
completion:^(BOOL finished) {
card2.frame = CGRectMake(-330,card2.frame.origin.y, card2.frame.size.width, card2.frame.size.height);
}];