2011-09-28 56 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之後的子視圖添加),然後在其上運行該動畫並將其刪除。 –