XCode 12.4 日本語化計画:Swift Tutorials
ビルドリストとナビゲーション
リストの要素を個別に指定する代わりに、コレクションから直接に行を生成できます。
データのコレクションと、コレクション内の各要素のビューを提供するクロージャを渡すことにより、コレクションの要素を表示するリストを作成できます。リストは、提供されたクロージャを使用して、コレクション内の各要素を子ビューに変換します。
ステップ 1
2 つの静的ランドマークの行を削除し、代わりにモデルデータの Landmarks 配列を List イニシャライザに渡します。
リストは 識別可能な (identifiable) データで機能します。2 つの方法のいずれかでデータを識別可能にすることができます。データとともに各要素を一意に識別するプロパティへのキーパスを渡すか、データ型を Identifiable プロトコルに準拠させることです。
ステップ 2
クロージャから LandmarkRow を返すことにより、動的に生成されたリストを完成させます。
これにより、landmarks 配列の各要素ごとに 1 つの LandmarkRow が作成されます。
次に、Landmark 型に Identifiable な適合性を追加して、List のコードを簡略化します。
ステップ 3
Landmark.swift に切り替えて、Identifiable プロトコルへの準拠を宣言します。
Landmark データには、Identifiable プロトコルに必要な id プロパティがすでに含まれています。データを読み取るときに、プロパティを追加してデコードするだけで済みます。
ステップ 4
LandmarkList.swift に戻り、id パラメータを削除します。
今後は、Landmark 要素のコレクションを直接使用できるようになります。
    LandmarkList.swift
    Landmark.swift
    LandmarkList.swift
セクション 1 | セクション 2 | セクション 3 | セクション 4 |
セクション 5 | セクション 6 | セクション 7 | セクション 8 |
セクション 101 | セクション 102 | セクション 103 | セクション 104 |
セクション 105 | セクション 106 | セクション 107 | セクション 108 |