SwiftUI 简明教程之OutlineGroupDiclosureGroupView

Posted Bruce2077

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI 简明教程之OutlineGroupDiclosureGroupView相关的知识,希望对你有一定的参考价值。

本文为 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")
}

正如示例所示,OutlineGroupDiclosureGroupView 其实都是可以相互嵌套使用的,以实现更为复杂的层级视图。

本文为 Eul 样章,如果您喜欢,请移步 AppStore/Eul 查看更多内容。

以上是关于SwiftUI 简明教程之OutlineGroupDiclosureGroupView的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 简明教程之OutlineGroupDiclosureGroupView

SwiftUI 简明教程之 GeometryReaderPreferenceKey

SwiftUI 简明教程之滑动视图

SwiftUI 简明教程之使用 UIKit

SwiftUI 简明教程之格子

SwiftUI 简明教程之合理使用 EquatableView