是否有可能在相同的ForEach
中有2 structs/arrays
个(对于备选方案3)?如果是这样的话,是如何做到的呢?我所有的try 都没有成功.
import Foundation
import SwiftUI
struct Car: Vehicle, Identifiable {
let id = UUID()
let name: String
}
struct Bike: Vehicle, Identifiable {
let id = UUID()
let name: String
}
let cars = [Car(name: "Renault"), Car(name: "Peugeot")]
let bikes = [Bike(name: "Yamaha"), Bike(name: "Honda")]
protocol Vehicle {
var name: String { get }
}
struct ParentView: View {
var body: some View {
// Option 1 OK
ForEach(cars.sorted { $0.name < $1.name }) { car in
ChildView(vehicle: car)
}
// Option 2 OK
ForEach(bikes.sorted { $0.name < $1.name }) { bike in
ChildView(vehicle: bike)
}
// Option 3 NOT OK
ForEach((cars, bikes).sorted { $0.name < $1.name }) { vehicle in
ChildView(vehicle: vehicle)
}
}
}
struct ChildView: View {
let vehicle: Vehicle
var body: some View {
Text(vehicle.name)
}
}
谢谢,提前谢谢!