2009-11-11 64 views

回答

11

最简单的方法是在删除它之前使用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]; }]; 
+0

当我评论 // [myView removeFromSuperView]; 它的工作。 你能解释我为什么我必须评论该行, Xcode告诉我UIView可能没有回应removeFromSuperView – RAGOpoR 2009-11-12 02:47:02

+0

我没有真正测试这段代码,但没有removeFromSuperview视图只隐藏(alpha = 0)。 只需将SuperView'v'放入小写:[myView removeFromSuperview]; – Francescu 2009-11-12 11:18:49

+0

感谢圣东尼 根据您的建议来改变V至小写它的工作 但它不具有动画 – RAGOpoR 2009-11-13 03:10:50

7

如果你靶向的iOS 4.0向上,你可以使用动画块:

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

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

相关问题