En Swift, comment puis-je parcourir chaque cellule dans un UITableView et puis obtenir ses propriétés?
J'ai un générique UITableView et je veux aller à travers chaque cellule visible.
Comment puis-je faire dans swift?
Cette question n'a pas de sens: les Cellules sont mises en commun et réutilisées. En règle générale, si vous ne le voyez pas sur un écran, ça n'existe pas. Au lieu de ce que vous voulez faire est de parcourir tout dans votre sous-tendent la structure de données. Pouvez-vous élaborer sur ce que vous essayez de faire, s'il vous plaît?
Il a dit cellules visibles, vous pouvez le faire, peut-être, il a édité sa question
Pas peut-être à ce sujet, vous pouvez le lire, le modifier. La question initiale a été explicitement tous cellules, visibles et non visibles.
La question d'origine est parfaitement logique pour moi. Même si c'est pas visible, les cellules peuvent encore exister. Ceux-ci peuvent par exemple être abonnés à des données, et que vous souhaitez transformer cet abonnement lorsqu'ils ne sont plus visibles. Faire cela dans deinit() n'est pas assez bon, parce qu'ils peuvent encore être en vie dans la réutilisation de la piscine.
Il a dit cellules visibles, vous pouvez le faire, peut-être, il a édité sa question
Pas peut-être à ce sujet, vous pouvez le lire, le modifier. La question initiale a été explicitement tous cellules, visibles et non visibles.
La question d'origine est parfaitement logique pour moi. Même si c'est pas visible, les cellules peuvent encore exister. Ceux-ci peuvent par exemple être abonnés à des données, et que vous souhaitez transformer cet abonnement lorsqu'ils ne sont plus visibles. Faire cela dans deinit() n'est pas assez bon, parce qu'ils peuvent encore être en vie dans la réutilisation de la piscine.
OriginalL'auteur TIMEX | 2015-06-29
Vous devez vous connecter pour publier un commentaire.
Je suis actuellement utilisé dans un de mes projets:
Voici une autre réponse, mais c'est en objective-C: Comment puis-je faire une boucle par UITableView de cellules?
OriginalL'auteur Rachel Harvey
Vous ne pouvez pas. UITableView ne pas garder de cellules qui ne sont pas visibles. Dès qu'une cellule se déplace complètement hors de l'écran est supprimé et ajouté à la réutilisation de la file d'attente.
OriginalL'auteur Sven
Vous dit cellules visibles. Vous avez la possibilité d'itérer à travers ceux-ci. Voici un exemple de code, vous avez juste besoin d'obtenir votre propre référence à la table.
Vous avez abattu à votre type de cellule à l'aide de
as
. Si vous êtes certain que sur le type, vous pouvez direcell as! YourCellType
OriginalL'auteur sylvanaar
Votre table a une source de données, le plus souvent la source de données est un tableau d'objets. La source de données détermine le nombre d'éléments dans le tableau. Vous pourriez itération sur la source de données et l'utilisation cellForRowAtIndex chemin d'accès pour obtenir l'objet de cellule.
La la réponse à cette question a quelques informations sur cellForRowAtIndexPath
OriginalL'auteur Russell Austin
J'ai créé un tableau de cellules, et chaque fois que je créer une cellule dans cellForRowAt je l'ai ajouté à la matrice, si elle n'est pas déjà là. Le Code est ci-dessous.
Puis plus tard, vous pouvez faire une boucle par le biais de ce tableau....
OriginalL'auteur Chris Deck
[NOTE: Cette réponse a été pour la question d'origine qui prévoyait explicitement la non-cellules visibles. Même après la mod, sauf si l'intention est pour le post-configuration spécifique à la présentation des propriétés des cellules, il est toujours approprié de se référer à la source de données.]
Correctement configuré cellules ayant uniquement des "propriétés", quand ils sont visibles, comme ils se sont réutilisés comme nécessaire.
À pied les éléments de votre source de données (les détails de l'itération va varier en fonction du type de structure que vous utilisez comme source de données) afin de déterminer les attributs que vous cherchez.
Si vous sentez que vous avez une raison valable pour inspecter les cellules elles-mêmes de toute façon, vous aurez besoin de garder une liste séparée de
cellForRowAtIndexPath
temps, chaque fois qu'une nouvelle cellule a été créée, l'ajouter à la liste.OriginalL'auteur Brad Brighton