Structure

OutlineGroup

A structure that computes views and disclosure groups on demand from an underlying collection of tree-structured, identified data. ある構造体、それはビューおよび開示グループを要求に応じてツリー構造の、識別可能なデータからなるある基礎をなすコレクションから計算します。

Declaration 宣言

struct OutlineGroup<Data, ID, Parent, Leaf, Subgroup> where Data : RandomAccessCollection, ID : Hashable

Overview 概要

Use an outline group when you need a view that can represent a hierarchy of data by using disclosure views. This allows the user to navigate the tree structure by using the disclosure views to expand and collapse branches.

In the following example, a tree structure of FileItem data offers a simplified view of a file system. Passing the root of this tree and the key path of its children allows you to quickly create a visual representation of the file system.


struct FileItem: Hashable, Identifiable, CustomStringConvertible {
    var id: Self { self }
    var name: String
    var children: [FileItem]? = nil
    var description: String {
        switch children {
        case nil:
            return "📄 \(name)"
        case .some(let children):
            return children.isEmpty ? "📂 \(name)" : "📁 \(name)"
        }
    }
}


let data =
  FileItem(name: "users", children:
    [FileItem(name: "user1234", children:
      [FileItem(name: "Photos", children:
        [FileItem(name: "photo001.jpg"),
         FileItem(name: "photo002.jpg")]),
       FileItem(name: "Movies", children:
         [FileItem(name: "movie001.mp4")]),
          FileItem(name: "Documents", children: [])
      ]),
     FileItem(name: "newuser", children:
       [FileItem(name: "Documents", children: [])
       ])
    ])


OutlineGroup(data, children: \.children) { item in
    Text("\(item.description)")
}

Type Parameters

Five generic type constraints define a specific OutlineGroup instance:

  • Data: The type of a collection containing the children of an element in the tree-shaped data.

  • ID: The type of the identifier for an element.

  • Parent: The type of the visual representation of an element whose children property is non-nil

  • Leaf: The type of the visual representation of an element whose children property is nil.

  • Subgroup: A type of a view that groups a parent view and a view representing its children, typically with some mechanism for showing and hiding the children

Topics 話題

Creating an Outline Group

Creating an Outline Group from a Binding

Supporting Types 支援を行う型

Default Implementations 省略時実装

Relationships 関係

Conforms To 次に準拠

  • View
    Conforms when Data conforms to RandomAccessCollection, ID conforms to Hashable, Parent conforms to View, Leaf conforms to View, and Subgroup conforms to View.

See Also 参照

Outlines