Iphone 是否可以使用动画从SuperView中移除?

Iphone 是否可以使用动画从SuperView中移除?,iphone,Iphone,我有两层是我的程序顶部和底部 我如何用动画移除顶层或将顶层恢复到原来的位置?可能吗 最简单的方法是在移除帧之前播放帧和alpha 你可以得到一些很酷的效果 -(void)removeWithEffect:(UIView *)myView { [UIView beginAnimations:@"removeWithEffect" context:nil]; [UIView setAnimationDuration:0.5f]; //Change frame parameters, you h

我有两层是我的程序顶部和底部


我如何用动画移除顶层或将顶层恢复到原来的位置?可能吗

最简单的方法是在移除帧之前播放帧和alpha

你可以得到一些很酷的效果

-(void)removeWithEffect:(UIView *)myView
{
 [UIView beginAnimations:@"removeWithEffect" context:nil];
 [UIView setAnimationDuration:0.5f];
 //Change frame parameters, you have to adjust
 myView.frame = CGRectMake(0,0,320,480);
 myView.alpha = 0.0f;
 [UIView commitAnimations];
 [myView performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:0.5f];
}
iOS更新

现在可以使用块执行动画

[UIView animateWithDuration:0.5f
     animations:^{view.alpha = 0.0;}
     completion:^(BOOL finished){ [view removeFromSuperview]; }];

如果您的目标是iOS 4.0以上,则可以使用动画块:

[UIView animateWithDuration:0.2
     animations:^{view.alpha = 0.0;}
     completion:^(BOOL finished){ [view removeFromSuperview]; }];

(以上代码来自苹果的UIView文档)

当我评论时//[myView removeFromSuperView];它起作用了。你能解释一下为什么我必须注释这一行吗,Xcode告诉我UIView可能不会响应removeFromSuperview我没有真正测试这段代码,但是如果没有removeFromSuperview,视图只会隐藏(alpha=0)。只需将SuperView“v”放在小写字母中:[myView removeFromSuperview];根据您的建议,感谢santoni将V改为小写,它可以工作,但没有动画提示:在beginAnimations之后添加[UIView setAnimationDuration:1];//时间以秒为单位,我认为动画执行得太快了,而不是在动画之后添加额外的performSelector,您只需将动画委托设置为myview,并将AnimationDiEndSelector设置为@selector(removeFromSuperview)。。。通过这种方式,可以确保动画完成后立即将其删除。