[英]Not able to remove image from superview
我创建了一个动画,完成后应该删除正在动画的图像。 由于某种原因,它无法正常工作(即,它没有删除图像)。 我做错了什么吗:
[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]; }];
可能的原因是appleView[i]
为nil。 在完成程序块中放置一个断点,然后检查。
试试这个代码..
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.8];
[UIView setAnimationTransition: UIViewAnimationOptionCurveEaseInOut forView:self.view cache:YES];
[appleView[i] removeFromSuperview];
[UIView commitAnimations];
希望对您有帮助...
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];
}];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.