如何在SwiftUI中的各节之间移动列表项,同时添加新节并删除旧节

时间:2020-08-06 23:07:23

标签: swift swiftui swiftui-list ios14

我有一个数据集(每个部分都有一个字符串和一个int),我将它分解为SwiftUI列表中的各个部分。当用户输入搜索字段时,我想完全更改列表中的部分,但将列表项设置为新部分的动画。如下面的第一个视频所示,我已经在UIKit中完成了此操作。

但是,当我在iOS14中测试SwiftUI时,我注意到当我在各节之间切换时,列表中的项目不会垂直移动到新节中,而是通过从左到右进行动画处理新部分。当与大型数据集一起使用时,它使整个屏幕看起来就像是从左侧进行动画处理。

我们如何禁用节动画,或将其更改为类似于UIKit方法的行为。还有另一种方法可以更有效地处理此问题吗?

我提供了两个SwiftUI演示,这些演示显示了动画问题,其中列表在各节之间移动。在第一个中,它将数据从1A和2A节“移动”到1B和2B。

在第二个演示中,它添加了一个部分并将数据移动到新部分中。使用“添加”执行此操作,然后执行“更新”,正如我期望的那样。但是当您同时按下“ both”和“ both”时,就会说明另一个奇怪的动画。

UIKit版本:imgur.com/a/mq5IrE5 演示代码:textuploader.com/1f6bb

0 个答案:

没有答案