gpt4 book ai didi

ios - SwiftUI DisclosureGroup 分别展开每个部分

转载 作者:行者123 更新时间:2023-12-05 08:47:01 26 4
gpt4 key购买 nike

我正在使用 Foreach 和 DisclosureGroup 来显示数据。每个部分都可以展开/折叠。然而,它们都在同时展开/折叠。

How do I Expand/Collapse each section individually?

struct TasksTabView: View {

@State private var expanded: Bool = false

var body: some View {
ForEach(Array(self.dict!.keys.sorted()), id: \.self) { key in
if let tasks = self.dict![key] {
DisclosureGroup(isExpanded: $expanded) {
ForEach(Array(tasks.enumerated()), id:\.1.title) { (index, task) in
VStack(alignment: .leading, spacing: 40) {
PillForRow(index: index, task: task)
.padding(.bottom, 40)
}.onTapGesture {
self.selectedTask = task
}
}
} label: {
Header(title: key, SubtitleText: Text(""), showTag: true, tagValue: tasks.count)
}.accentColor(.rhinoRed)
}
}
}
}

最佳答案

您可以有一个包含所有展开部分的键的 Set。如果某个部分已展开,请将其添加到集合中。然后在折叠时将其删除。

代码:

@State private var expanded: Set<String> = []
DisclosureGroup(
isExpanded: Binding<Bool>(
get: { expanded.contains(key) },
set: { isExpanding in
if isExpanding {
expanded.insert(key)
} else {
expanded.remove(key)
}
}
)
) {
/* ... */
}

关于ios - SwiftUI DisclosureGroup 分别展开每个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68636590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com