One Logo Pool Ball
SwiftUI · IOS API REFERENCE

OutlineGroup

struct · iOS 14.0+ · SDK 27.1

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

A structure that computes views and disclosure groups on demand from an underlying collection of tree-structured, identified data. 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

Members (0)

This type has no directly callable members in this snapshot. See the framework’s skipped declarations for unsupported APIs.

Skipped declarations

16 declarations were excluded from these bindings. Each reason comes from the generator or the iOS SDK compiler.

OutlineGroup.init(_:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for DataElement)

OutlineGroup.init(_:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for Data)

OutlineGroup.init(_:id:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for Data)

OutlineGroup.init(_:id:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for Data)

OutlineGroup.body

This protocol needs associated types that cannot yet cross the bridge.

OutlineGroup.init(_:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for E)

OutlineGroup.init(_:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for C)

OutlineGroup.init(_:id:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for C)

OutlineGroup.init(_:id:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for C)

OutlineGroup.init(_:children:)

This declaration needs Swift generic type arguments. (no canonical witness for DataElement)

OutlineGroup.init(_:children:)

This declaration needs Swift generic type arguments. (no canonical witness for Data)

OutlineGroup.init(_:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for Data)

OutlineGroup.init(_:id:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for Data)

OutlineGroup.init(_:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for Data)

OutlineGroup.init(_:id:children:content:)

This declaration needs Swift generic type arguments. (no canonical witness for Data)

OutlineGroup.tableRowBody

This protocol needs associated types that cannot yet cross the bridge.

All SwiftUI types →