Изменить состояние по одному для контрольного списка - PullRequest
0 голосов
/ 26 марта 2020

Для нового приложения с контрольным списком в SwiftUI я пытаюсь выяснить, как я могу изменять состояния по одному, а не все вместе одновременно.

Флажки - это в основном изображения пользовательского интерфейса, которые я переключаю, когда состояние меняется с «ложь» на «истина».

  @State var checked = false

Флажки в основном представляют собой массив из трех, которые следует проверять по одному за раз.

  HStack {
           ForEach(0 ..< 3) { item in
           Checkbutton(checked: self.$checked)
                        }
                     }

Это код для изменения состояния флажка.

Image(systemName: checked ?  "checkmark" : "plus")

Кто-нибудь знает, как я могу изменить этот лог c для проверки флажков по одному за раз?

Заранее спасибо !!!

1 Ответ

0 голосов
/ 26 марта 2020

У вас есть один bool state, но несколько CheckButtons. Вместо этого вам нужно [bool], чтобы отслеживать, отмечена ли каждая из кнопок.

struct ContentView : View {
    @State var checked = [false, false, false]

    var body: some View {
        HStack {
            ForEach(0 ..< 3) { index in
                Button(action: {
                    self.checked[index].toggle()
                }) {
                    Image(systemName: self.checked[index] ?  "checkmark" : "plus")
                }

            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...