Sources de données variables dans Swift – Meilleure programmation

Online Coding Courses for Kids

Cela signifie que vous pouvez utiliser, par exemple, un type aussi simple que Int pour votre identifiant de section, une énumération pour le rendre plus descriptif, ou tout autre objet conforme à ce protocole.

Les équivalents de vue de table sont assez similaires dans la mise en œuvre, donc je suis presque sûr qu’une fois que vous le comprenez, vous pouvez facilement le mettre en œuvre par vous-même.

Alors, créons une grille simple avec différentes couleurs d’arrière-plan qui se mélangent toutes les quelques secondes comme présenté ci-dessous:

Résultat final

Si vous voulez simplement voir tout le code, vous pouvez le trouver ici: Playground Gist.

Pour ce faire, nous devons créer l’habituel UICollectionView (n’oubliez pas d’enregistrer votre cellule) avec la disposition que vous souhaitez. J’ai utilisé la disposition du flux pour cela. La partie la plus intéressante est une nouvelle source de données.

Que nous attribuons à notre vue de collection collectionView.dataSource = dataSource.

Maintenant, nous devons le remplir avec les données réelles. Nous le faisions en mettant en œuvre des méthodes à partir du UICollectionViewDataSource mais avec de nouvelles sources de données diffiables, nous devons le faire un peu différemment.

Nous devons créer un instantané (NSDiffableDataSourceSnapshot) qui est également une classe générique, similaire à la classe UICollectionViewDiffableDataSource.

J’ai simplement utilisé un entier pour identifier mes sections, mais vous pouvez également utiliser, par exemple, une énumération comme celle-ci (rappelez-vous simplement que les types à la fois dans l’instantané et DataSource doit être le même):

Il existe donc de nombreuses façons de l’implémenter et de rendre votre code plus lisible.

Il ne reste plus qu’à appliquer nos modifications à l’instantané.

Où, en tant qu’articles, j’ai utilisé un tableau avec des couleurs:

Il existe également d’autres opérations disponibles que vous pouvez effectuer sur un instantané, comme la suppression, le déplacement, le rechargement, l’insertion d’éléments avant ou après certains éléments, etc.

Close Menu