无法从superview中删除图像

时间:2012-12-07 03:51:20

标签: iphone objective-c ios

我创建了一个动画,完成后,应该删除动画图像。由于某种原因,它没有工作(即它没有删除图像)。有什么我做错了吗?:

[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]; }];

3 个答案:

答案 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];
        }];