J'ai un bouton. Je veux définir une couleur d'arrière-plan personnalisée pour l'état en surbrillance. Comment puis-je le faire dans SwiftUI?
Button(action: signIn) {
Text("Sign In")
}
.padding(.all)
.background(Color.red)
.cornerRadius(16)
.foregroundColor(.white)
.font(Font.body.bold())
Je cherchais une fonctionnalité similaire et je l'ai fait de la manière suivante.
J'ai créé une structure View spéciale renvoyant un Button dans le style dont j'ai besoin, dans cette structure j'ai ajouté une propriété State sélectionnée. J'ai une variable nommée 'table' qui est un Int puisque mes boutons sont des boutons ronds avec des chiffres dessus
struct TableButton: View {
@State private var selected = false
var table: Int
var body: some View {
Button("\(table)") {
self.selected.toggle()
}
.frame(width: 50, height: 50)
.background(selected ? Color.blue : Color.red)
.foregroundColor(.white)
.clipShape(Circle())
}
}
Ensuite j'utilise dans mon contenu Voir le code
HStack(spacing: 10) {
ForEach((1...6), id: \.self) { table in
TableButton(table: table)
}
}
Cela crée une pile horizontale avec 6 boutons qui se colorent en bleu lorsqu'ils sont sélectionnés et en rouge lorsqu'ils sont désélectionnés.
Je ne suis pas un développeur expérimenté, mais j'ai essayé toutes les façons possibles jusqu'à ce que je trouve que cela fonctionne pour moi, j'espère que cela sera également utile pour d'autres.