繁体   English   中英

无法从超级视图中删除图像

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM