我差不多完成了我的第一个iPhone应用程序,一切正常 - 除了一个很小的显示错误:
我的星标是UIView(全屏),没有导航栏或工具栏。 如果我点击一个开始按钮,会有一个UIViewAnimationTransitionFlipFromRight动画翻转到主导航控制器:
-(IBAction) switchViewToMainMenu {
[UIView beginAnimations:@"Flip View" context:nil];
[UIView setAnimationDuration:1.25];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:self.window cache:YES];
[self.navController viewWillAppear:YES];
[self.startScreenViewController viewWillDisappear:YES];
[self.startScreenViewController.view removeFromSuperview];
[self.window addSubview:navController.view];
[self.startScreenViewController viewDidDisappear:YES];
[self.navController viewDidAppear:YES];
[UIView commitAnimations];
self.startScreenViewController=nil;
[startScreenViewController release];
}
除了一个小问题外,这个工作正常:
当出现导航控制器视图(翻转)时,顶部的导航栏上的某些像素太高(导航栏应该是一个白色条)。动画完成后,导航栏将下降到正确的位置。这看起来不太漂亮......
如何解决这个问题?
答案 0 :(得分:0)
我们找到了一个使用setAnimationDelay的解决方案,只需要一些时间来加载tabbar并将其置于视图中。 认为你必须稍微改变代码才能使用setAnimationDelay。 您必须在setanimationtransition之前使用setyanimationdelay,并在commitAnimations之前使用setanimationtransition。所以上面的代码应该结束:
[UIView setAnimationDelay:2]; // 2 seconds delay seems to be working for us
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:self.window cache:YES];
[UIView commitAnimations];