模态翻转动画后 UINavigationBar 的高度发生变化
Posted
技术标签:
【中文标题】模态翻转动画后 UINavigationBar 的高度发生变化【英文标题】:Height of UINavigationBar changes after modal flip animation 【发布时间】:2013-10-02 06:55:10 【问题描述】:我注意到,当我转到导航控制器时,导航栏会在翻转动画完成后略微跳跃。
只有在我使用水平翻转转场时才会这样做,而不是在我使用默认的向上滑动动画时。
这是我为说明问题而制作的 GIF(对不起,尺寸太小了!):
http://i.imgflip.com/3ym0y.gif
注意标题为“Modal”的导航栏——注意它在动画后向下跳约 20 像素。
上面的例子是用一个新项目创建的——我没有继承 UINavigationController 或 UINavigationBar。这是故事板,以防万一:
http://i.imgur.com/qFlK2oB.jpg
我错过了什么?
【问题讨论】:
【参考方案1】:将此添加到您以模态方式呈现的控制器中的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://***.com/a/19265558/254603
【讨论】:
谁能验证默认的翻转动画持续时间实际上是 0.75?似乎它也是 1.0 或该范围内的多个值。谢谢!以上是关于模态翻转动画后 UINavigationBar 的高度发生变化的主要内容,如果未能解决你的问题,请参考以下文章