Initializer
init(_:id:children:content:)
Creates an outline group from a binding to a collection of root data elements, the key path to a data element’s identifier, and a key path to its children.
Declaration
宣言
Available when Data
conforms to RandomAccessCollection
, ID
conforms to Hashable
, Parent
conforms to View
, Parent
is Leaf
, and Subgroup
is DisclosureGroup<Parent, OutlineSubgroupChildren>
.
Parameters
パラメータ
data
A collection of tree-structured, identified data.
id
The key path to a data element’s identifier.
children
A key path to a property whose non-nil
value gives the children of data
. 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 data
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 an element in data
.
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
init<C, E>(Binding<E>, children: WritableKeyPath<E, C?>, content: (Binding<E>) -> Leaf)
Creates an outline group from a binding to a root data element and a key path to its children.
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
.
init<C, E>(Binding<C>, children: WritableKeyPath<E, C?>, content: (Binding<E>) -> Leaf)
Creates an outline group from a binding to a collection of root data elements and a key path to its children.
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
.
init<C, E>(Binding<E>, id: KeyPath<E, ID>, children: WritableKeyPath<E, C?>, content: (Binding<E>) -> Leaf)
Creates an outline group from a binding to a root data element, the key path to its identifier, and a key path to its children.
Available when Data
conforms to RandomAccessCollection
, ID
conforms to Hashable
, Parent
conforms to View
, Parent
is Leaf
, and Subgroup
is DisclosureGroup<Parent, OutlineSubgroupChildren>
.