【发布时间】:2021-10-14 18:08:24
【问题描述】:
我正在尝试重新排序我的 CoreData 项目,但是当我尝试重新排序项目并放置单元格时,我的列表视图被关闭。所有更改都会保存并正确显示在其他视图和修改的列表中。 这是我的代码
import SwiftUI
struct DaysOrderView: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Days.entity(), sortDescriptors:[NSSortDescriptor(key: "id", ascending: true)]) var days : FetchedResults<Days>
var body: some View {
List {
ForEach(days, id: \.self ) { day in
HStack {
Image(systemName: day.isDisplayed.boolValue ? "checkmark.circle.fill" : "checkmark.circle").foregroundColor(.yellow)
Text(day.name)
}
}
.onMove(perform: onMove)
}
.toolbar {
EditButton()
}
}
private func onMove(source: IndexSet, destination: Int) {
var revisedItems: [ Days ] = days.map{ $0 }
revisedItems.move(fromOffsets: source, toOffset: destination )
for reverseIndex in stride( from: revisedItems.count - 1,
through: 0,
by: -1 )
{
revisedItems[ reverseIndex ].id = Int16( reverseIndex )
}
}
}
【问题讨论】:
-
欢迎来到 Stack Overflow!您是否希望有一些任意的排序顺序?
-
是的,我希望它按 id 排序。