I was looking for a similar functionality and I did it in the following way. 
I created a special View struct returning a Button in the style I need, in this struct I added a State property selected. I have a variable named 'table' which is an Int since my buttons a round buttons with numbers on it
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())
    }
}
Then I use in my content View the code
HStack(spacing: 10) {
  ForEach((1...6), id: \.self) { table in
    TableButton(table: table)
  }
}
This creates an horizontal stack with 6 buttons which color blue when selected and red when deselected. 
I am not a experienced developer but just tried all possible ways until I found that this is working for me, hopefully it is useful for others as well.