Composants de table et fonctionnalités dans Xamarin.iOS
Un UITableView peut avoir un style « groupé » ou « plain » et se compose des parties suivantes :
- En-tête de section
- Cellules (ou lignes, si vous préférez)
- Pied de page de section
- Index
- Mode Édition (inclut « balayer pour supprimer » et faire glisser des poignées pour modifier l’ordre des lignes)
Ces captures d’écran montrent comment les lignes de section, les en-têtes, les pieds de page, les contrôles de modification et l’index sont affichés.
Ces parties sont décrites plus en détail ci-dessous :
En-tête de section
Les cellules peuvent éventuellement être regroupées en sections, étiquetées avec un en-tête personnalisé et/ou étiquetées avec un pied de page. L’en-tête peut être défini avec une valeur de chaîne ou une vue personnalisée peut être fournie pour permettre une disposition ou un style différent.
Cellules
Les cellules sont l’élément d’interface utilisateur principal d’une table. En cas d’implémentation correcte, les cellules sont réutilisées pour l’efficacité de la mémoire. Il existe quatre styles de cellule intégrés, et vous pouvez créer vos propres cellules personnalisées , soit dans le code, soit dans le Concepteur lors de l’utilisation de Storyboards.
Pied de page de section
Le pied de page de section facultatif peut être défini avec une valeur de chaîne, ou une vue personnalisée peut être fournie pour permettre une disposition ou un style différent. Les en-têtes de section et les pieds de page peuvent être définis indépendamment.
Index
L’index apparaît sous la forme d’une bande de caractères vers le bas du bord droit de la table. Le fait de toucher ou de faire glisser l’index accélère le défilement vers cette partie de la table. Un index est facultatif, mais il est recommandé d’aider à parcourir les listes longues. Un index n’est généralement pas utilisé avec le style groupé.
Mode d’édition
Il existe quelques fonctionnalités d’édition différentes disponibles :
- Balayez pour supprimer des cellules individuelles.
- Entrée en mode Édition pour afficher les boutons supprimer sur chaque ligne
- Entrée en mode Édition pour afficher les handles de réécriture.
- Insertion de nouvelles cellules (avec animation).
Le reste de ce document montre comment implémenter toutes ces fonctionnalités UITableView avec Xamarin.iOS.
Vue d’ensemble des classes
Les classes principales utilisées pour afficher les vues de tableau sont affichées ici :
L’objectif de chaque classe est décrit ci-dessous :
- UITableView : vue qui contient une collection de cellules à l’intérieur d’un conteneur de défilement. La vue de tableau utilise généralement l’écran entier dans une application i Téléphone, mais peut exister dans le cadre d’une vue plus grande sur l’iPad (ou apparaître dans une fenêtre contextuelle).
- UITableViewCell : vue qui représente une seule cellule (ou ligne) dans une vue de tableau. Il existe quatre types de cellules intégrés et il est possible de créer des cellules personnalisées en C# ou avec le Concepteur iOS.
- UITableViewSource – Classe abstraite exclusive Xamarin.iOS qui fournit toutes les méthodes requises pour afficher un tableau, y compris le nombre de lignes, renvoyant une vue de cellule pour chaque ligne, la gestion de la sélection de lignes et de nombreuses autres fonctionnalités facultatives. Vous devez la sous-classe pour obtenir un uiTableView opérationnel.
- NSIndexPath : contient des propriétés de ligne et de section qui identifient de manière unique la position d’une cellule dans un tableau.
- UITableViewController : un UIViewController prêt à l’emploi qui a un UITableView codé en dur en tant qu’affichage et accessible via la propriété TableView.
- UIViewController : si la table n’occupe pas l’écran entier, vous pouvez ajouter un UITableView à n’importe quel UIViewController avec son jeu Frame correctement.
UITableViewSource remplace les deux classes suivantes, qui sont toujours disponibles dans Xamarin.iOS, mais qui ne sont pas normalement requises :
- UITableViewDataSource : Objective-C protocole modélisé dans Xamarin.iOS en tant que classe abstraite. Doit être sous-classé pour fournir un tableau avec une vue pour chaque cellule, ainsi que des informations sur les en-têtes, les pieds de page et le nombre de lignes et de sections du tableau.
- UITableViewDelegate : Objective-C protocole modélisé dans Xamarin.iOS en tant que classe. Gère la sélection, la modification des fonctionnalités et d’autres fonctionnalités de table facultatives.
Dans ce document, les exemples utilisent UITableViewSource et ignorent ces deux classes. Ils sont mentionnés ici, car tous Objective-C les exemples trouvés dans la documentation d’Apple les référencent. Il est donc utile de comprendre ce qu’ils font (et que vous pouvez utiliser UITableViewSource de Xamarin.iOS à la place).