2011-09-28 22 views
1

在我的iPhone应用程序中,有一个窗口出现在主窗口上。这是我的关闭按钮的代码;关闭动画不会运行

-(IBAction)cancel{ 
[UIView beginAnimations:@"Animation" context:nil]; 
[UIView setAnimationDuration:0.75]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES]; 
[self.view removeFromSuperview]; 
//[_window addSubview:view2]; 
[UIView commitAnimations];} 

窗口正确关闭,但动画不会执行。我不懂为什么。

感谢

回答

0

我想这是因为你在动画移除从上海华的看法。动画不会发生,因为视图消失了。您应该等到动画完成后才能移除以查看,您可以通过设置动画完成时调用的委托和选择器来执行此操作。

[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)]; 

然后在

-(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context 
{ 
    [self.view removeFromSuperview]; 
} 
+0

这种工作。发生了什么事是窗口动画,但窗口仍然存在。一旦动画完成,窗口被删除。所以想象一下;窗户卷起来,因为它是完全相同的窗户在冰壶窗户“下方”。然后窗口消失。 – Xaphann

+0

我想你会想要确保你正在转换的视图位于你要删除的视图的后面。我非常怀疑“self.view”是你想要删除的视图。我想你可能想要两个视图,view1和view2。将view1放在view2的前面(也许将它作为view2之后的子视图添加),然后在其上运行该动画并将其删除。 –