【发布时间】:2020-07-03 08:00:03
【问题描述】:
我有一个来自核心数据实体MyEntity 的 NSManagedObject 子类:
@NSManaged public var name: String
@NSManaged public var date: Date
和一个列表。我准备了一个 ScrollView,其中包含可用于过滤列表的按钮(?)
func groupYears(fetchedResults: FetchedResults<MyEntity>) -> [Int] {
var result = [Int]()
for fetchedResult in fetchedResults {
let component = Calendar.current.dateComponents([.year], from: fetchedResult.date)
if !result.contains(component.year!) {
result.append(component.year!)
}
}
return result
}
@FetchRequest(sortDescriptors: [NSSortDescriptor(keyPath: \MyEntity.date, ascending: true)]) var fetchedResults: FetchedResults<MyEntity>
VStack {
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 15) {
Button(action: {}) { Text("all") }
ForEach(groupYears(fetchedResults: fetchedResults), id: \.self) { year in
Button(action: {}) { Text(String(year)) }
}
}
}
List(fetchedResults, id: \.self) { result in
VStack(alignment: .leading) {
Text(result.name)
Text(dateFormatter.string(from: result.date))
}
}
}
我想点击一个按钮,列表应该动态过滤相关年份。
如何动态过滤列表?
【问题讨论】:
-
@pawello2222 也许你在我编辑之前回答了。无论如何谢谢你。我现在想如何动态过滤列表?
标签: ios swift core-data swiftui