Dictionary 如何在SwiftUI中筛选多个列表视图
我不熟悉编码,一直在尝试使用SwiftUI构建我的第一个iPhone应用程序,所以请原谅我的问题的幼稚和代码中的任何错误。 我已经成功解析了json文件中的数据,并且能够在2个列表视图和最终的详细视图中显示数据。我现在正在尝试筛选3个列表,以便在第一个列表中不重复汽车的品牌,在第二个列表中不重复相应汽车的型号,在第三个列表中不重复相应汽车的徽章 如果问题太宽泛,我表示歉意,我也很感激有很多方法可以完成我想做的事情。如果能为我推荐的资源指出正确的方向,我将不胜感激,这样我就可以更好地理解这种类型的数据管理 谢谢 JSON片段Dictionary 如何在SwiftUI中筛选多个列表视图,dictionary,swiftui,swiftui-list,swiftui-navigationlink,Dictionary,Swiftui,Swiftui List,Swiftui Navigationlink,我不熟悉编码,一直在尝试使用SwiftUI构建我的第一个iPhone应用程序,所以请原谅我的问题的幼稚和代码中的任何错误。 我已经成功解析了json文件中的数据,并且能够在2个列表视图和最终的详细视图中显示数据。我现在正在尝试筛选3个列表,以便在第一个列表中不重复汽车的品牌,在第二个列表中不重复相应汽车的型号,在第三个列表中不重复相应汽车的徽章 如果问题太宽泛,我表示歉意,我也很感激有很多方法可以完成我想做的事情。如果能为我推荐的资源指出正确的方向,我将不胜感激,这样我就可以更好地理解这种类型的
[
{
"id": 1,
"make": "Alfa Romeo",
"model": "147",
"badge": "Twin Spark",
"series": null,
"year": 2004,
"fuel": "Petrol",
"driveType": "2WD",
"bodyType": "Small Hatch",
"transmission": "Automatic",
"manualDeduction": -250,
"subtraction1": null,
"subtraction1Difference": 0,
"add1": "Sunroof",
"add1Difference": 250,
"add2": null,
"add2Difference": 0,
"add3": null,
"add3Difference": 0,
"add4": null,
"add4Differnece": 0,
"avgAnnualKms": 15000,
"age": 16,
"averageKmsForYear": 240000,
"priceWhenNew": 0,
"depreciationForKms": 0,
"algorithmValuation": 0,
"valuerValuation": 500,
"valo": 500,
"logoName": "Alfa"
},
{
"id": 2,
"make": "Alfa Romeo",
"model": "156",
"badge": "JTS",
"series": null,
"year": 2004,
"fuel": "Petrol",
"driveType": "2WD",
"bodyType": "Sedan",
"transmission": "Automatic",
"manualDeduction": -250,
"subtraction1": null,
"subtraction1Difference": 0,
"add1": "Sunroof",
"add1Difference": 250,
"add2": null,
"add2Difference": 0,
"add3": null,
"add3Difference": 0,
"add4": null,
"add4Differnece": 0,
"avgAnnualKms": 15000,
"age": 16,
"averageKmsForYear": 240000,
"priceWhenNew": 0,
"depreciationForKms": 0,
"algorithmValuation": 0,
"valuerValuation": 1000,
"valo": 1000,
"logoName": "Alfa"
},
数据:
MakeCarView视图
import SwiftUI
struct MakeCarView: View {
var body: some View {
NavigationView{
List(JsonParse()) { car in
MakeCellRow(car: car)
}.navigationTitle("Make")
}
}
}
struct MakeCellRow: View {
var car: VehicleData
var body: some View {
HStack {
NavigationLink(destination: ModelView()) {
Image(car.logoName)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 60, height: 60, alignment: .center)
.padding()
Text(car.make)
.font(.title2)
}
.background(Color("card color"))
.cornerRadius(15)
.shadow(color: Color.black.opacity(0.25), radius: 3, x: 0, y: 0)
}
}
}
struct MakeCarViewsPreview: PreviewProvider {
static var previews: some View {
Group {
MakeCarView()
}
}
}
听起来您只想显示唯一的值。这可以通过多种方式实现,具体取决于存储的工作方式。如果这是您所拥有的全部,而您没有数据库功能,则可能是一个存储正在显示的值的数组,如果该值已在该列表中,则不要再生成另一行。
import SwiftUI
struct MakeCarView: View {
var body: some View {
NavigationView{
List(JsonParse()) { car in
MakeCellRow(car: car)
}.navigationTitle("Make")
}
}
}
struct MakeCellRow: View {
var car: VehicleData
var body: some View {
HStack {
NavigationLink(destination: ModelView()) {
Image(car.logoName)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 60, height: 60, alignment: .center)
.padding()
Text(car.make)
.font(.title2)
}
.background(Color("card color"))
.cornerRadius(15)
.shadow(color: Color.black.opacity(0.25), radius: 3, x: 0, y: 0)
}
}
}
struct MakeCarViewsPreview: PreviewProvider {
static var previews: some View {
Group {
MakeCarView()
}
}
}