我尽量避免使用
ZStack
重复 ForEach
7 次,一切正常。但我不能用dates.contains(.Monday)
代替dates.contains(bubble.word)
。
我也收到一个错误:实例方法“包含”需要类型“Week”和“String.Element”(又名“Character”)是等效的。
我也试过
dates.contains(.\(bubble.word))
.
我正在尝试做的事情是可能的还是根本不可能?谢谢!
import Foundation
import SwiftUI
enum Week {
case Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
struct Car: Identifiable {
let id = UUID()
let name: String
let days: [Week]
}
let cars = [
Car(name: "Peugeot 307", days: [.Monday, .Sunday]),
Car(name: "Dacia Duster", days: [.Monday, .Sunday])
]
struct ParentView: View {
let car: Car
var body: some View {
ChildView(dates: car.days)
}
}
struct Bubble: Identifiable {
let id = UUID()
let letter: String
let word: String
}
let bubbles = [
Bubble(letter: "M", word: "Monday"),
Bubble(letter: "T", word: "Tuesday"),
// To Sunday
]
struct ChildView: View {
let dates: [Week]
var body: some View {
ForEach(bubbles) { bubble in
ZStack {
Circle()
.foregroundColor(dates.contains(.Monday) ? .black : nil)
.frame(width: 22, height: 22)
Text(bubble.letter)
.foregroundColor(dates.contains(.Monday) ? .white : .grey))
}
}
}
}