我有一个相当简单的应用程序,有两个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];
答案 0 :(得分:2)
您是否尝试过将缓存设置为NO?缓存将视图保存为栅格化表单,这可能发生在期间为OptionsViewController的子视图绘制。
另外你应该考虑在iOS5中使用更新更好的动画方法。
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion