是否可以使用动画删除SuperSuperview?

时间:2009-11-11 09:25:10

标签: iphone

我的程序中有2层是顶部和底部

如何删除带有动画的顶层或将顶层返回到后面是否可能?

2 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:7)

如果您向上定位iOS 4.0,则可以使用动画块:

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

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