Initializer

init(_:children:content:)

Creates an outline group from a binding to a root data element and a key path to its children.

Declaration 宣言

init<C, E>(_ root: Binding<E>, children: WritableKeyPath<E, C?>, content: @escaping (Binding<E>) -> Leaf) where Data == Binding<C>, ID == E.ID, C : MutableCollection, C : RandomAccessCollection, E : Identifiable, E == C.Element
Available when Data conforms to RandomAccessCollection, ID is Data.Element.ID, Parent conforms to View, Parent is Leaf, Subgroup is DisclosureGroup<Parent, OutlineSubgroupChildren>, and Data.Element conforms to Identifiable.

Parameters パラメータ

root

The root of a collection of tree-structured, identified data.

children

A key path to a property whose non-nil value gives the children of a data element. A non-nil but empty value denotes an element capable of having children that’s currently childless, such as an empty directory in a file system. On the other hand, if the property at the key path is nil, then the outline group treats the data element as a leaf in the tree, like a regular file in a file system.

content

A view builder that produces a content view based on a data element.

Discussion 議論

This initializer creates an instance that uniquely identifies views across updates based on the identity of the underlying data element.

All generated disclosure groups begin in the collapsed state.

Make sure that the identifier of a data element only changes if you mean to replace that element with a new element, one with a new identity. If the ID of an element changes, then the content view generated from that element will lose any current state and animations.

See Also 参照

Creating an Outline Group from a Binding