将 UINavigationController 与具有透明背景的 UIViewController 一起使用

Posted

技术标签:

【中文标题】将 UINavigationController 与具有透明背景的 UIViewController 一起使用【英文标题】:Using UINavigationController with UIViewControllers having transparent background 【发布时间】:2014-05-02 07:46:08 【问题描述】:

UINavigationController 的默认行为是缓慢地将 currentViewController 向左移动,而新推送的视图控制器则快一点。

这在纯色背景下效果很好。

我需要为UINavigationController 堆栈内的所有视图控制器使用透明背景。在这种情况下,默认行为会导致视图控制器相互重叠(正如预期的那样,因为它们没有背景,它们看起来就像它们混合在一起),直到视图控制器的推送/弹出完成。这看起来很难看。

有什么可以用默认或子类UINavigationController做的吗?

【问题讨论】:

如果你想要透明背景,那么你可以使用 alpha 属性 @Anonymous 我已经做到了透明化。透明的过渡很丑陋。这就是为什么我试图改变这种转变。 【参考方案1】:

您可以按照here 的描述进行自定义推送/弹出转换。您可以在视图控制器不重叠的情况下进行简单的幻灯片转换,使您的推送动画看起来不错。

【讨论】:

我需要支持 ios 6.0+ :-/

以上是关于将 UINavigationController 与具有透明背景的 UIViewController 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

将 UIViewController 放在 UINavigationController 堆栈之上

将 UIViewController 添加到 UINavigationController 的问题

如何将 UIView 添加到 UINavigationController 堆栈

将 UINavigationBar 添加到没有 UINavigationController 的 UITableViewController

为啥我们将 UIViewController 传递给 UINavigationController 类?

如何将 CAGradientLayer 应用于 UINavigationController 背景