イニシャライザ
init(_:id:children:content:)
root のデータ要素、その識別子(ID)へのキーパス、およびその子へのキーパスからアウトライングループを作成します。
宣言
init<DataElement>(_ root: DataElement,id:KeyPath<DataElement, ID>, children: KeyPath<DataElement, Data?>, content: @escaping (DataElement) -> Leaf) where DataElement == Data.Element
Data が RandomAccessCollection に準拠し、ID が Hashable に準拠し、Parent が View に準拠し、Parent が Leaf であり、 Subgroup が DisclosureGroup<Parent であり、OutlineSubgroupChildren> である場合に使用できます。
パラメータ
root
ツリー構造の、識別されたデータのコレクションのルート。
id
データ要素の識別子(ID)へのキーパス。
children
nil 以外の値が data の子に与えるプロパティへのキーパス。nil 以外の空の値は、ファイルシステム内の空のディレクトリのように、現在子がない子を持つことができる要素を示します。一方、キーパスのプロパティが nil の場合、アウトライングループは data をファイルシステム内の通常のファイルのように、ツリー内のリーフとして扱います。
content
data 内の要素に基づいてコンテンツビューを生成するビュービルダ。
議論
このイニシャライザは、基本となるデータ要素の ID に基づいて、更新全体でビューを一意に識別するインスタンスを作成します。
生成されたすべての公開グループは、折りたたまれた状態で始まります。
データ要素の識別子(ID)が変更されるのは、その要素を新しい要素に置き換える場合、つまり新しい ID に置き換える場合のみにしてください。要素の ID が変更されると、その要素から生成されたコンテンツビューは、現在の状態とアニメーションを失います。
以下も見よ
アウトライングループの作成
root のデータ要素とその子へのキーパスからアウトライングループを作成します。
Data が RandomAccessCollection に準拠し、ID が Data.Element.ID であり、Parent が View に準拠し、Parentが Leaf であり、Subgroup が DisclosureGroup<Parent であり、OutlineSubgroupChildren> と、Data.Element が Identifiable に準拠している場合に使用できます。
root のデータ要素のコレクションとその子へのキーパスからアウトライングループを作成します。
Data が RandomAccessCollection に準拠し、ID が Data.Element.ID であり、Parent が View に準拠し、Parentが Leaf であり、Subgroup が DisclosureGroup<Parentであり、OutlineSubgroupChildren> と、Data.Element が Identifiable に準拠している場合に使用できます。
root のデータ要素のコレクション、データ要素の識別子(ID)へのキーパス、およびその子へのキーパスからアウトライングループを作成します。
Data が RandomAccessCollection に準拠し、ID が Hashable に準拠し、Parent が View に準拠し、Parent が Leaf であり、Subgroup が DisclosureGroup<Parent であり、OutlineSubgroupChildren>である場合に使用できます。