在动画完成之前,UIView控制不绘图

时间:2012-05-05 01:03:22

标签: iphone ios xcode animation uiview

我有一个相当简单的应用程序,有两个UIViewControllers。一个是主视图,第二个是选项页面。当我从一个动画到另一个动画时,UISwitches和其他控件在旋转完成之前不会完全绘制。如果我不使用动画,那么没有问题 - 一切都正确显示。这是代码:

[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];

1 个答案:

答案 0 :(得分:2)

您是否尝试过将缓存设置为NO?缓存将视图保存为栅格化表单,这可能发生在期间为OptionsViewController的子视图绘制。

另外你应该考虑在iOS5中使用更新更好的动画方法。

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