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

有动画 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% 生效,推入动画有时生效,有时不生效。暂时没有时间研究为什么,后续再说吧~