我有一種方法,其中動畫UIWindow
的子視圖之一,然後使用removeFromSuperview
從UIWindow
刪除它。但是,當我動畫塊後放入removeFromSuperview
,動畫從來沒有顯示,因爲removeFromSuperview
去除UIWindow
的UIView
播放動畫:-(之前,我怎樣才能延緩removeFromSuperview
所以播放動畫,然後再子視圖被刪除?我的動畫後試圖[NSThread sleepForTimeInterval:1];
阻止,但沒有獲得預期效果,因爲動畫睡覺也因爲某些原因UIView removeFromSuperView動畫延遲
我對這個方法的代碼:
- (void) animateAndRemove
{
NSObject *mainWindow = [[UIApplication sharedApplication] keyWindow];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.8];
UIView *theView = nil;
for (UIView *currentView in [mainWindow subviews])
{
if (currentView.tag == 666)
{
currentView.backgroundColor = [UIColor colorWithRed:0.8 green:0.8 blue:0.8 alpha:0.0];
theView = currentView;
}
}
[UIView setAnimationTransition: UIViewAnimationTransitionNone forView:theView cache:YES];
[UIView commitAnimations];
//[NSThread sleepForTimeInterval:1];
[theView removeFromSuperview];
}
哇,這就像一個魅力的工作!驚人!謝謝 – Mike 2010-04-16 13:16:59
這是一個不錯的解決方案。可惜它沒有被接受。向上! – mtrc 2010-07-27 16:34:37