#ios #swiftui
#iOS #swiftui
Вопрос:
У меня есть серия кнопок, подобных этой:
ForEach(context.items){item in
Button(action: {
self.variableSelection.toggle()
}) {
Text("(item)")
if self.variableSelection{
Text("Extra text")
}
}
}
Что происходит, так это:
Появляется список элементов, и когда я нажимаю кнопку, внизу каждой кнопки появляется «Дополнительный текст».
Чего я хотел, так это чтобы «Дополнительный текст» отображался только под кнопкой, которую я нажал. Как я могу этого добиться?
Спасибо
Ответ №1:
Извлеките строку в отдельный вид, чтобы каждая строка имела собственное состояние развернутого / свернутого, например
struct ItemRowView: View {
let item: String
@State private var variableSelection = false
var body: some View {
Button(action: {
self.variableSelection.toggle()
}) {
Text("(item)")
if self.variableSelection{
Text("Extra text")
}
}
}
}
итак, теперь цикл
ForEach(context.items){item in
ItemRowView(item: item)
}