如何启动已扩展的多个披露群组 SwiftUI

how to start multiple disclosure groups already expanded swiftui

提问人:dhaval123 提问时间:3/8/2023 最后编辑:dhaval123 更新时间:3/12/2023 访问量:242

问:

我有一个带有字符串列表的 foreach,每个元素都有一个可扩展的视图。我希望它们都已经开始扩展。 我还想单独折叠/扩展它们。

@State myLists = ["list1", "list2", "list3"]

ForEach(myLists, id: \.self){myList in

     DisclosureGroup(myList){

                Text(myList)

     }

}

我希望它们都已经展开,并单独折叠它们。

我尝试了多个链接,但其中大多数都无法正常工作。

SwiftUI DisclosureGroup:单独展开每个部分 - 这个部分有效,但它从所有部分都关闭开始。

数组 swift swiftui swift3 披露组

评论


答:

1赞 malhal 3/12/2023 #1

你可以做另一个来做这件事,例如View

struct ContentView: View {
    let myLists = ["list1", "list2", "list3"]
    
    var body: some View {
        ForEach(myLists, id: \.self){ myList in
            ContentView2(text: myList)
        }
    }
}

struct ContentView2: View {
    let text: String
    @State private var expanded = true
    
    var body: some View {
        DisclosureGroup(text, isExpanded: $expanded){
            Text(text)
        }
    }
}

注意对动态无效,您需要使用真实的数据,否则更改时会崩溃。id: \.self@Stateid