UINavigationController 奇怪的弹出动画

Posted

技术标签:

【中文标题】UINavigationController 奇怪的弹出动画【英文标题】:UINavigationController strange pop animation 【发布时间】:2016-02-18 06:58:39 【问题描述】:

当我在我的 NavigationController 上弹出一个 ViewController 时,我有一个奇怪的动画。短视频说明:https://youtu.be/IMbIS7evLrs

视图控制器结构是: UITabBarController -> UINavigationControllers -> UIViewControllers

我在 UIViewController 中使用这一行推送新的 VC:

    [self.navigationController pushViewController:tripVC animated:YES];

tripVC 是一个新创建的 UIViewController。 然后当点击 NavigationController Back 按钮时会弹出。我也尝试过使用

以编程方式调用pop
[self.navigationController popViewControllerAnimated:YES];

tripVC 中得到同样奇怪的动画。

特别奇怪的是,我在其他应用程序上使用过这种结构/方法并且没有遇到过这个问题。我想知道我的应用程序中是否有一些奇怪的 segue 代码/缺少一些动画代码?

【问题讨论】:

第二个VC中的背景图片似乎比设备屏幕宽。检查约束。这也可能与 UIImageView 的内容模式有关 - 为了保持纵横比,imageview 可能超出屏幕宽度 @Paulw11 - 很可能就是这样!它更广泛 - 故意 - 因为我在另一个视图上使用 UIMotionEffectGroup 并希望图像在这个 VC 上是相同的。会看看。 @Paulw11 - 哇 - 就是这样。一段时间以来一直在与那个挣扎。谢谢。请张贴作为答案,我会接受。 【参考方案1】:

似乎第二个VC中的背景图像比设备屏幕宽。当这个场景推入/推出时,图像通常隐藏的边缘会被短暂地显露出来。

【讨论】:

我遇到了同样的问题。我只是将 imageView 裁剪到边界,它不再有故障了。【参考方案2】:

是的,就我而言,@Paulw11 是对的。为您的根视图启用 clipsToBound。

【讨论】:

【参考方案3】:

如果您没有给出 self.view 的背景颜色,那么它也可能发生。 这是导航动画奇怪的第二个原因。

【讨论】:

以上是关于UINavigationController 奇怪的弹出动画的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController 奇怪的弹出动画

在 UISplitViewController 中弹出 UINavigationController 会导致奇怪的过渡

UITabBarController 中的 UINavigationController 奇怪的弹出动画

从 UINavigationController (IOS 5) 弹出 UIViewController 时出现奇怪的动画

iOS 应用程序奇怪的崩溃 [UINavigationController _startCustomTransition:]

UINavigationController 与子视图控制器的奇怪行为