2012-05-05 42 views
0

我有一個相當簡單的應用程序和兩個UIViewControllers。一個是主視圖,第二個是選項頁面。當我從一個動畫到另一個動畫時,UISwitches和其他控件在旋轉完成之後纔會完全繪製。如果我不使用動畫,那麼就沒有問題 - 一切看起來都正確。代碼如下:UIView控件直到動畫完成才繪製

[UIView beginAnimations:@"View Flip" context:nil]; 
[UIView setAnimationDuration:1.0]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 

if (self.optionsViewController.view.superview == nil) 
{ 
    if (self.optionsViewController == nil) 
    { 
     self.optionsViewController = [[OptionsViewController alloc] initWithNibName:nil bundle:nil]; 
    } 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; 

    [self.view insertSubview:self.optionsViewController.view atIndex:127]; 
} 

[UIView commitAnimations]; 

回答

2

您是否嘗試將緩存設置爲NO?緩存將視圖保存爲可能發生在OptionsViewController的子視圖的中間繪製的柵格化表單。

另外,您應該考慮在iOS5中使用更新,更好的動畫方法。

+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion 
+0

設置緩存:NO是答案 - 主要是。 UISwitch控件工作正常,但UINavigationBar /按鈕做了一個奇怪的滑入。切換到transitionFromView工作...除了真正的問題可能是我沒有根UIViewController,並試圖從主要轉換。在這一點上,我認爲用一個根控制器來重做應用會更好,這個根控制器不會用於其他視圖以外的任何事情。 – bratboy