我正在从 viewDidLoad 调用一个函数 [self moveFishLeft] 并且对象正在正确设置动画,但是当我尝试删除 touchesBeganWithEvent 上的动画时,动画仍然存在。那么如何删除屏幕触摸上的所有左右功能动画。
- (void)moveFishLeft {
[UIView animateWithDuration:6.0f
delay:0.0f
options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionAllowAnimatedContent
animations:^{
[optionView1 setFrame:CGRectMake(0, 480, 130, 110)];
[optionView2 setFrame:CGRectMake(0, 600, 130, 110)];
[optionView3 setFrame:CGRectMake(130, 530, 130, 110)];
[optionView4 setFrame:CGRectMake(130, 670, 130, 110)];
[optionView5 setFrame:CGRectMake(130, 780, 130, 110)];
[optionView6 setFrame:CGRectMake(0, 720, 130, 110)];
}
completion:^(BOOL finished) {
[optionView1.layer removeAllAnimations];
[optionView2.layer removeAllAnimations];
[optionView3.layer removeAllAnimations];
[optionView4.layer removeAllAnimations];
[optionView5.layer removeAllAnimations];
[optionView6.layer removeAllAnimations];
[optionImage1 setImage:[UIImage imageNamed:@"fish1_right"]];
[optionImage2 setImage:[UIImage imageNamed:@"fish1_right"]];
[optionImage3 setImage:[UIImage imageNamed:@"fish1_right"]];
[optionImage4 setImage:[UIImage imageNamed:@"fish1_right"]];
[optionImage5 setImage:[UIImage imageNamed:@"fish1_right"]];
[optionImage6 setImage:[UIImage imageNamed:@"fish1_right"]];
[self moveFishRight];
}];
}
- (void)moveFishRight {
[UIView animateWithDuration:6.0f
delay:0.0f
options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionAllowAnimatedContent
animations:^{
[optionView1 setFrame:CGRectMake(530, 480, 130, 110)];
[optionView2 setFrame:CGRectMake(530, 600, 130, 110)];
[optionView3 setFrame:CGRectMake(638, 530, 130, 110)];
[optionView4 setFrame:CGRectMake(638, 670, 130, 110)];
[optionView5 setFrame:CGRectMake(638, 780, 130, 110)];
[optionView6 setFrame:CGRectMake(530, 720, 130, 110)];
}
completion:^(BOOL finished) {
[optionView1.layer removeAllAnimations];
[optionView2.layer removeAllAnimations];
[optionView3.layer removeAllAnimations];
[optionView4.layer removeAllAnimations];
[optionView5.layer removeAllAnimations];
[optionView6.layer removeAllAnimations];
[optionImage1 setImage:[UIImage imageNamed:@"fish1"]];
[optionImage2 setImage:[UIImage imageNamed:@"fish1"]];
[optionImage3 setImage:[UIImage imageNamed:@"fish1"]];
[optionImage4 setImage:[UIImage imageNamed:@"fish1"]];
[optionImage5 setImage:[UIImage imageNamed:@"fish1"]];
[optionImage6 setImage:[UIImage imageNamed:@"fish1"]];
[self moveFishLeft];
}];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[optionView1.layer removeAllAnimations];
[optionView2.layer removeAllAnimations];
[optionView3.layer removeAllAnimations];
[optionView4.layer removeAllAnimations];
[optionView5.layer removeAllAnimations];
[optionView6.layer removeAllAnimations];
}