Ниже в моем коде у меня есть настройка, в которой есть 4 кнопки, каждый раз, когда я нажимаю кнопку, она действует как переключатель (как переключатель). Чего я хотел бы добиться, так это чтобы все остальные кнопки были серыми при нажатии на одну из кнопок. Только одна кнопка может быть зеленой или активной одновременно.
struct hzButton: View {
var text: String
@State var didTap: Bool
var body: some View {
Button(action: {
if self.didTap == true{
self.didTap = false
}else{
self.didTap = true
}
selectFreq(frequency: self.text)
}) {
Text(text)
.font(.body)
.fontWeight(.semibold)
.foregroundColor(Color.white)
.multilineTextAlignment(.center)
.padding(.all)
.background(didTap ? Color.green : Color.gray)
.cornerRadius(6.0)
}
.frame(width: nil)
}
}
struct Row: Identifiable {
let id = UUID()
let headline: String
let numbers: [String]
}
struct ContentView: View {
var rows = [
Row(headline: "", numbers: ["250","500","750","1000"]),
]
var body: some View {
HStack {
ForEach(rows) { row in
HStack {
ForEach(row.numbers, id: \.self) { text in
hzButton(text: text, didTap: false)
}
}
}
}
}
}