我注意到,当我转到 Naviagtion Controller 时,导航栏会在翻转动画完成后立即略微跳动。
它仅在我使用翻转水平转场时执行此操作,而在我使用默认的向上滑动动画时不执行此操作。
这是我为说明问题而制作的 GIF(抱歉尺寸太小了!):
http://i.imgflip.com/3ym0y.gif
注意标题为“Modal”的导航栏——注意它在动画后跳下约 20 像素。
上面的例子是用一个新项目创建的——我没有子类化 UINavigationController 或 UINavigationBar。这是 Storyboard ,以防有帮助:
http://i.imgur.com/qFlK2oB.jpg
我错过了什么?
最佳答案
将此添加到您以模态方式呈现的 Controller 中的 viewWillAppear
:
- (void)viewWillAppear:(BOOL)animated
{
// Workaround #1 for jumpy navbar
[self.navigationController.navigationBar.layer removeAllAnimations];
}
并且在关闭 Controller 时(因此在与上面相同的 Controller 中):
// Workaround #2 for jumpy navbar
[UIView transitionWithView:self.navigationController.view
duration:0.75
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:nil
completion:nil];
[self dismissViewControllerAnimated:YES completion:nil];
关于ios - 模态翻转动画后 UINavigationBar 的高度发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19131456/