我有一个相当简单的应用程序,其中包含两个 UIViewController。一个是主视图,第二个是选项页面。当我从一个动画到另一个动画时,UISwitch 和其他控件在旋转完成之前不会完全绘制。如果我不使用动画,那么就没有问题 - 一切都正确显示。这是代码:
[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];
最佳答案
您是否尝试过将缓存设置为“否”?缓存将 View 保存为光栅化形式,这可能发生在 OptionsViewController 的 subview 的绘制过程中。
您还应该考虑在 iOS5 中使用更新更好的动画方法。
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion
关于iphone - UIView 控件在动画完成之前不绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10457919/