SwiftUI 简明教程之OutlineGroup、DiclosureGroupView
作者:互联网
本文为 Eul 样章,如果您喜欢,请移步 AppStore/Eul 查看更多内容。
Eul 是一款 SwiftUI & Combine 教程 App(iOS、macOS),以文章(文字、图片、代码)配合真机示例(Xcode 12+、iOS 14+,macOS 11+)的形式呈现给读者。笔者意在尽可能使用简洁明了的语言阐述 SwiftUI & Combine 相关的知识,使读者能快速掌握并在 iOS 开发中实践。
OutlineGroup
OutlineGroup 与前面章节提到的可展开列表类似,只是它的使用范围更广,我们不一定要在 List 中才能实现可展开功能。在任何一个 View 中,我们都可以用 OutlineGroup 实现可展开功能。
同样以前面提到的树形结构的 weathers 为例:
OutlineGroup(expandWeather, children: \.weathers) { weather in
Label(weather.name, systemImage: weather.icon)
}
这和之前 List 的使用方法几乎一模一样。
DiclosureGroupView
DiclosureGroupView 同样可以实现树形结构的展开/收拢,它使用起来更灵活,我们不必使用树形结构的数据源来构建视图。通过绑定的 isExpanded
属性,我们可以方便地控制视图的显示与隐藏。示例所示代码如下:
@State private var isExpanded = false
DisclosureGroup(isExpanded: $isExpanded, content: {
Toggle("展开/收起", isOn: $isExpanded)
DisclosureGroup("内嵌列表") {
Text("Hello 1")
Text("Hello 1")
Text("Hello 1")
}
}) {
Text("Disclosure")
}
正如示例所示,OutlineGroup 和 DiclosureGroupView 其实都是可以相互嵌套使用的,以实现更为复杂的层级视图。
本文为 Eul 样章,如果您喜欢,请移步 AppStore/Eul 查看更多内容。
标签:Eul,isExpanded,Text,视图,DiclosureGroupView,SwiftUI,OutlineGroup 来源: https://www.cnblogs.com/bruce2077/p/14897096.html