问题现象
在 SwiftUI 4.0(iOS 16+)中,一个超简单 List 视图层级子视图的收放操作竟然没有动画,这着实有点让人不爽:
从上图可以看到:我们在点击 List 子项时不仅毫无收放动画可言,而且在展开时还有卡顿,显得非常生硬。
以上代码在目前最新的 iOS 16.4.1(a) 系统中测试。
想知道如何重新找回美美哒的动画而且消除卡顿变得丝般顺滑吗?
Let‘s find out!!!😉
问题分析
1. 演示代码
首先,是非常简单的演示代码。
我们需要创建测试数据结构 Bookmark,注意它需要遵守 Identifiable 协议,且其中的 items 数组递归包含自身的定义以形成层级结构:
struct Bookmark: