63 votes

UITableView, comment savoir quelle section pendant cellForRowAtIndexPath ?

J'ai un UITableView qui affiche une liste de villes. Je veux les séparer par État. Je n'arrive pas à trouver comment faire pour qu'il choisisse les bons éléments dans mon tableau. Si la section 1 (Arizona) a 2 villes et la section 2 (Californie) a 2 villes, pendant cellForRowAtIndexPath, la section 2, ville 1 a un index de 0, même si c'est le troisième élément de mon tableau. J'ai pensé à transformer mon tableau de villes en tableau d'états, où chaque élément contient un tableau de villes, mais je ne sais toujours pas dans quelle section je me trouve et je ne sais donc pas à quel tableau de villes du tableau d'états je dois accéder.

1 votes

D'accord... apparemment je n'ai pas réussi à faire des recherches sur ce sujet. Désolé pour la question stupide.

0 votes

Un peu bête, peut-être, mais pas extrêmement : J'ai eu une question similaire lorsque j'ai commencé à faire du développement sur iPhone.

1 votes

La raison pour laquelle vous n'avez probablement pas réussi à résoudre ce problème vous-même est que les propriétés row et section sont des ajouts UIKit à NSIndexPath. Si vous consultez la documentation de NSIndexPath, elles ne sont pas documentées. Elles sont cependant documentées ici : developer.apple.com/iphone/library/documentation/UIKit/

133voto

Yannick Compernol Points 2875

Cette méthode s'appelle

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Le paramètre indexpath contient une propriété de ligne et de section.

indexPath.section  
indexPath.row

Voici le lien de la documentation pour le NSIndexPath classe.

11voto

Morion Points 8315

Vous pouvez utiliser indexPath.section et indexPath.row

-1voto

akbar khan Points 180

Swift 3, 4 et 4.2

Utilisation de l'interrupteur

switch indexPath.section {
        case 0:
            print("Write your code for section number one.")
        case 1:
            print("Write you code for section number two")
        default:
            return
        }

Utilisation de if else

if indexPath.section == 0 {
            print("Write your code for section number one.")
        } else if indexPath.section == 1 {
            print("Write your code for section number two.")
        }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X