是否可以使用动画从超级视图中移除?
答
最简单的方法是在删除它之前使用frame和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]; }];
(以上代码来自Apple的UIView文档)
当我评论 // [myView removeFromSuperView]; 它的工作。 你能解释我为什么我必须评论该行, Xcode告诉我UIView可能没有回应removeFromSuperView – RAGOpoR 2009-11-12 02:47:02
我没有真正测试这段代码,但没有removeFromSuperview视图只隐藏(alpha = 0)。 只需将SuperView'v'放入小写:[myView removeFromSuperview]; – Francescu 2009-11-12 11:18:49
感谢圣东尼 根据您的建议来改变V至小写它的工作 但它不具有动画 – RAGOpoR 2009-11-13 03:10:50