在SwiftUI中创建可展开的列表,可以使用List
和DisclosureGroup
组合。
首先,你需要创建一个List
视图,用于显示列表项。在List
中,你可以添加ForEach
来循环遍历数据,并为每个数据项创建一个可展开的DisclosureGroup
。
以下是一个简单的示例代码:
struct ContentView: View {
let items = ["Item 1", "Item 2", "Item 3"]
@State var isExpanded = false
var body: some View {
List {
ForEach(items, id: \.self) { item in
DisclosureGroup(isExpanded: $isExpanded) {
Text("Expanded content for \(item)")
} label: {
Text(item)
}
}
}
.listStyle(InsetGroupedListStyle())
}
}
在这个示例中,items
是一个简单的字符串数组,用于表示列表中的每个项目。isExpanded
是一个布尔值,用于控制DisclosureGroup
的展开和折叠状态。
在List
视图中,使用ForEach
循环遍历items
数组,并为每个项目创建一个DisclosureGroup
。在DisclosureGroup
中,将isExpanded
绑定到其展开状态,并在标签中显示项目名称。在扩展内容中,只显示了一个简单的文本字符串用于演示。
最后,将listStyle()
方法应用到List
视图中,以使其外观符合InsetGroupedListStyle
样式。
这样,当用户单击列表中的项目时,DisclosureGroup
将展开或折叠,显示或隐藏其扩展内容。