ios – UINavigationBar的高度在模态翻转动画后发生变化

我注意到当我转向Naviagtion控制器时,导航栏在翻转动画完成后稍微跳转.

它只在我使用翻转水平segue时执行此操作,而不是在我使用默认的上滑动画时.

这是我用来说明问题的GIF(抱歉这个小尺寸!):

http://i.imgflip.com/3ym0y.gif

记下带有标题“Modal”的导航栏 – 注意它在动画后向下跳~20个像素.

上面的例子是用一个新项目创建的 – 我没有细分UINavigationController或UINavigationBar.这是故事板,如果有帮助:

http://i.imgur.com/qFlK2oB.jpg

我错过了什么?

解决方法

将此添加到您以模态方式呈现的控制器中的viewWillAppear:
- (void)viewWillAppear:(BOOL)animated
{
    // Workaround #1 for jumpy navbar
    [self.navigationController.navigationBar.layer removeAllAnimations];
}

当解雇控制器时(所以在与上面相同的控制器中):

// Workaround #2 for jumpy navbar
[UIView transitionWithView:self.navigationController.view
                  duration:0.75
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:nil
                completion:nil];
[self dismissViewControllerAnimated:YES completion:nil];

https://stackoverflow.com/a/19265558/254603

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...