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)。。。通过这种方式,可以确保动画完成后立即将其删除。