我已经实现了一个容器视图控制器(ios5),现在我试图实现自定义动画/转换切换视图控制器。加载视图时导航栏跳转
但是在实现涉及UINavigationController的任何动画时,我遇到了一个问题,结果与预期不符。例如,如果我使用导航栏显示控制器时从左侧动画执行翻转操作,则导航栏的位置会保持在原始位置下方44像素处,并且在执行动画后,导航栏将平稳移动到原来的位置,丑...
这发生在我执行的每一个动画,所以我想它只能与导航控制器相关。
这是我使用的翻盖过渡
[self transitionFromViewController:fromViewController
toViewController:toViewController
duration:1.0
options:UIViewAnimationOptionTransitionNone
animations:^{
[UIView beginAnimations:@"animation2" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration: 0.7];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:containerView cache:NO];
[UIView commitAnimations];
}
completion:^(BOOL finished) {
[toViewController didMoveToParentViewController:self];
[fromViewController removeFromParentViewController];
}];
代码我也试过以下
[self transitionFromViewController:fromViewController
toViewController:toViewController
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
}
completion:^(BOOL finished) {
[toViewController didMoveToParentViewController:self];
[fromViewController removeFromParentViewController];
}];
我忘了评论整个内容是向上移动的,所以如果我设置了导航栏框架,内容视图仍然会移动。我试图设置两个框架(导航栏和内容视图),但只有导航栏移动到原始位置。 – CSharpLearning
我刚刚检查了导航栏的框架及其在viewDidLoad和viewWillAppear(x = 0,y = 0)中的正确位置。即使导航栏从y =状态栏高度移动到y = 0 ...奇怪... – CSharpLearning
在导航栏中添加y = 20将其设置正确 –