我创建了一个动画,完成后,应该删除动画图像。由于某种原因,它没有工作(即它没有删除图像)。有什么我做错了吗?:
[UIView animateWithDuration:1.8 delay:0 options:UIViewAnimationOptionCurveEaseInOut
animations:^{
appleView[i].frame = CGRectMake(applePosition, 400.0, 25.0, 25.0);
}
completion:^(BOOL finished){ [appleView[i] removeFromSuperview]; }];
答案 0 :(得分:1)
可能的原因是appleView[i]
为零。在完成块中放置一个断点并检查它。
答案 1 :(得分:0)
尝试使用此代码..
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.8];
[UIView setAnimationTransition: UIViewAnimationOptionCurveEaseInOut forView:self.view cache:YES];
[appleView[i] removeFromSuperview];
[UIView commitAnimations];
我希望这可以帮助你...
答案 2 :(得分:0)
appleView是局部变量还是类成员?还有什么可以改变appleView吗?
完成块将在你开始动画后大约1.8秒运行,如果appleView是一个类成员并且有些东西改变了你可能会删除错误的东西。尝试在局部变量中捕获appleView [i],如下所示:
UIView *goingAway = appleView[i];
[UIView animateWithDuration:1.8 delay:0 options:UIViewAnimationOptionCurveEaseInOut
animations:^{
goingAway.frame = CGRectMake(applePosition, 400.0, 25.0, 25.0);
} completion:^(BOOL finished){
[goingAway removeFromSuperview];
}];