Вы можете объявить свой ButtonStyle следующим образом:
public struct SelectedButtonStyle: ButtonStyle {
@Binding var isSelected: Bool
public func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
.padding(20)
.foregroundColor(.white)
.background(isSelected ? Color.red : Color.gray)
.cornerRadius(10.0)
}
}
, а затем в представлении указать состояние для выбора:
@State var isSelected = false
, а затем вы можете либо объявить свою кнопкунапример, чтобы он был выбран один раз и навсегда остался выбранным:
Button("Tap") {
self.isSelected = true
} .buttonStyle(SelectedButtonStyle(isSelected: $isSelected))
или вы можете объявить его таким образом, чтобы иметь возможность отменить его выбор:
Button("Tap") {
self.isSelected.toggle()
} .buttonStyle(SelectedButtonStyle(isSelected: $isSelected))