我正在try 创建可搜索变量,以便当我在搜索栏中输入&>和Amount时,我会得到等于或大于输入的Amount的所有交易的列表
当我在搜索栏中输入<;和Amount时,我会得到一个等于或小于所输入金额的所有交易的列表.
例如,当我在搜索栏中输入>;50时,我希望筛选等于或大于50的所有交易的列表
以下是该参考的代码示例:
struct Items: Identifiable {
let id = UUID().uuidString
let name: String
let amount: Double
static var samples: [Items] = [
Items(name: "item 1", amount: 10.9),
Items(name: "item 2", amount: 50.0),
Items(name: "item 3", amount: 30.7),
Items(name: "item 4", amount: -10.9),
Items(name: "item 5", amount: 80.3),
Items(name: "item 6", amount: 15.3),
Items(name: "item 7", amount: 80.0),
]
}
import SwiftUI
struct ContentView: View {
@State var queryList: [Items] = Items.samples
@State var searchQuery = ""
var searchResult: [Items] {
guard !searchQuery.isEmpty else {return queryList}
return
queryList.filter({$0.amount >= (Double(searchQuery) ?? 0) || $0.amount <= Double(searchQuery) ?? 0})
}
var body: some View {
NavigationStack {
List {
ForEach(searchResult) { list in
HStack {
Text(list.name)
Spacer()
Text("\(list.amount)")
}
}
}
.listStyle(.plain)
.searchable(text: $searchQuery)
}
.padding()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}