構造体


OutlineGroup


ツリー構造の識別されたデータの基本となるコレクションから、必要に応じてビューと公開グループを計算する構造体。


宣言


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



概観


公開ビューを使用してデータの階層を表すことができるビューが必要な場合は、アウトライングループを使用します。これにより、ユーザは、公開ビューを使用して分岐を展開したり折りたたんだりすることにより、ツリー構造をナビゲートできます。


以下の例では、FileItem データのツリー構造により、ファイルシステムの簡略化されたビューが提供されます。このツリーの root とその子のキーパスを渡すと、ファイルシステムの視覚的表現をすばやく作成できます。


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)")

}



型パラメータ


5 つのジェネリック(汎用)型制約が、特定の OutlineGroup インスタンスを定義します。


  • Data: ツリー型データ内の要素の子を含むコレクションの型。

  • ID: 要素の識別子(ID)の型。

  • Parent: 子プロパティが nil 以外の要素の視覚的表現の型

  • Leaf: 子プロパティが nil である要素の視覚的表現の型。

  • Subgroup:親ビューとその子を表すビューをグループ化するビューの型であり、通常、子を表示および非表示にするための何らかの機構があります。


  • トピックス




    アウトライングループの作成




    階層データへの結束からアウトライングループを作成





    サポートする型




















































    目次
    Xcode の新機能

  • 利用可能
  • iOS 14.0+
    macOS 11.0+
    Mac Catalyst 14.0+

    フレームワーク

    SwiftUI

    このページには

  • 宣言
  • 概観
  • トピックス
  • 関連
  • 以下も見よ












  • トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ