- 很抱歉使用了伪代码,但我不允许分享我的代码。
我有一个 ScrollView,其中包含顶部的固定项目和底部的取消固定项目。
______________
| Item 1 |
| Item 2 |
| Item 3 |
|--------------|
| Item 4 |
| Item 5 |
| Item 6 |
| Item 7 |
| Item 8 |
|______________|
Scroll 视图由两个集合(pinnedItems 和 unpinnedItems)填充,使用 ScrollView 中的两个 ForEach 子句。
var pinnedItems = ["Item 1", "Item 2", "Item 3"]
var unpinnedItems = ["Item 4", "Item 5", "Item 6", "Item 7", "Item 8"]
ScrollView {
ForEach(pinnedTasks) { task in
NavigationLink(value: NavigationPath.task(task)) {
TaskCardView(task: task, onPinning: {
withAnimation {
togglePinnedTask(task: task)
}
})
.padding(.bottom)
}.buttonStyle(.plain)
}
Divider()
.frame(minHeight: 3)
.background(.gray)
.padding(.bottom)
ForEach(unPinnedTasks) { task in
NavigationLink(value: NavigationPath.task(task)) {
TaskCardView(task: task, onPinning: {
withAnimation {
togglePinnedTask(task: task)
}
})
.padding(.bottom)
}.buttonStyle(.plain)
}
}
togglePinnedTask() 函数从一个集合中删除任务并将其插入到另一个集合中。
自动动画只会淡出任务卡。我想让它们“飞”到新的位置。这样做的方法是什么?