如何用中间态动画效果显示小部件更改
小部件中间动画演示
一个演示如何使用中间状态来对小部件更改进行动画效果的演示。
必备
此演示基于 Xcode 15 中的 SwiftData 演示。目前,您需要 Xcode 15 Beta 才能打开此项目并在 iOS 17 中的设备或模拟器上运行。
演示时间
- 构建并安装应用
- 在主屏幕中添加小部件
- 启动应用,添加一些提醒事项
- 返回主屏幕,现在您可以看到您先前添加的提醒事项
- 点击左边的圆圈,这样会将一条提醒事项标记为“已完成”
- 现在您可以看到圆圈里有一个对勾图标,然后该图标消失,动画效果非常好
实施细节
实现此效果的关键在于:
- 当点击带有
AppIntent
按钮时,将调用AppIntent
的执行方法 - 在您成功执行操作后,需要重建时间线
- 时间线至少应包含两个条目:一个用于显示“最近完成”的项(在本例中,指其完成日期距现在不到2秒的提醒事项);另一个用于显示未完成的项。
- 在 iOS 17 中,由系统添加动画,以对时间线中的两个条目之间进行动画效果。