macOS|为 NavigationStack 导航添加动画

NavigationStack 在 macOS 上默认没有跳转动画,了解如何为它添加动画。

macOS|为 NavigationStack 导航添加动画

有动画 vs 无动画

播客、TV、音乐(无动画)

NavigationStack 在 macOS 上默认没有跳转动画。

在右侧内容区域,在点击时会进行无动画跳转:

0:00
/0:07

TV 、音乐应用也是一样的效果。

App Store(包含推入推出动画)

App Store 应用的独特在于,它包含页面切换的动画,而不是无动画跳转:

0:00
/0:05

为什么没有动画

这个帖子探讨了这个问题:

NO ANIMATIONS in NavigationStack o… | Apple Developer Forums

苹果工程师提到这是一个内部错误,但到2025 年该问题仍然存在。因此,我更愿意相信这是有意为之的默认选择。

添加动画

最简单的方式,是为NavigationStack 的 path 参数传递一个动画绑定 。

拿 DestinationVideo 项目作为示例,为 path 添加 .animation()

0:00
/0:03

添加之后,推出动画100% 生效,推入动画有时生效,有时不生效。暂时没有时间研究为什么,后续再说吧~