iPad: Itérer sur chaque cellule dans un UITableView?

iPad: Itérer sur chaque cellule dans un UITableView?

  • Sens de la question, vraiment: 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. Élaborer s'il vous plaît sur ce que vous essayez de faire.
  • +1 pour le commentaire, pourquoi avez-vous besoin d'itérer sur les cellules? Habituellement, vous devez effectuer une itération sur les données sous-jacentes de la structure, vous remplir les cellules de. Si vous avez besoin d'accéder à l'cellules pour une raison quelconque, puis dans cellForRowAtIndexPath: vous pouvez définir un cell propriété de vos données sous-jacentes de la structure à point pour l'initialisation de la cellule. Assurez-vous que c'est un @property (assign) bien, pas un retain, puisque vous ne voulez pas de garder toutes les cellules de la mémoire pour le plaisir de les réutiliser.
  • Ce n'est pas vraiment de sens; la UITableView existe en tant que représentation visuelle de certains de la sauvegarde de données. Et la banque de données existe ou non un sous-ensemble particulier de ses données est actuellement à l'écran. Afin de réitérer les cellules est comparable à l'interrogation de ce qui est dans le magasin, une ligne à la fois.
  • Il est dénuée de sens. Si vous êtes à l'interrogation de l'interface graphique de la table alors votre architecture est mal. Vous n'avez jamais besoin de frotter la table sur le GUI, puisque toutes les données existent dans le magasin de données. La table est MVC et toutes les données contenues dans la cellule est dans le magasin de données basé sur ce modèle. C'est une question de ne pas comprendre comment MVC œuvres.
  • Je suis d'accord avec Nick Turner. N'essayez pas de ce que vous décrivez (avec l'exception possible que vous avez une petite table, et défini les cellules comme n'étant pas réutilisable). Le moyen recommandé d'utiliser tableviews est de maintenir un état dans un autre modèle. En tant qu'utilisateur apporte des modifications, mise à jour de ce modèle avec les modifications, par l'ajout d'un gestionnaire pour chaque champ editDidEnd ou une méthode similaire. Puis, quand "Fait", vous êtes l'examen personnalisé de votre modèle de données, les champs affichés ne sont pas nécessaires.
  • Pas exactement. La vue de la table est une représentation visuelle de certains sous-ensemble de la mémoire de sauvegarde. Il n'y a aucune garantie que c'est une représentation complète. (eh bien, vous pouvez vous assurer que tous sont générés lors de l'initialisation, que les cellules ne sont jamais réutilisés, et de le garder dans votre tableau personnalisé, comme iOS en fait la demande. Je l'ai fait. Je ne pense pas que je le ferais de nouveau - c'est difficile d'être certain que vous n'avez pas omis quelques détails, et de créer un problème qui ne se produit que dans certaines circonstances, sur certains appareils. Comment pouvez-vous garantir entièrement testé? Je vous le conseille.)

InformationsquelleAutor MikeN | 2011-04-13