2010-09-01 4 views
0

précédent/suivant Est-il possible de changer quelque chose au sujet d'une cellule de table sur l'iPhone en fonction de la précédente ou cellule suivante de la table avant que la cellule est affichée? Cela pourrait être déroutant, alors voici un exemple:Objectif C: Modifier la configuration des cellules de table basée sur la cellule

Disons que j'ai un tableau comme celui-ci (je vais juste le remplir avec des valeurs aléatoires, donc ne vous inquiétez pas du texte contenu dans les cellules):

* Cat
* Lapin
* Chien
* Souris

et il y avait un imageView.image attaché à certaines cellules (images différentes pour les différents animaux et vous ne savez pas celles qui pourraient avoir des images) et à un certain point (par programmation) de nouveaux animaux sont inscrits dans la liste en prenant soin des animaux qui sont déjà entrés comme ceci:

* [animaux]
* Cat
* [animaux]
* Lapin
* [animaux]
* Chien
* [animaux]
* Souris
* [animaux]

Comment puis-je faire pour déplacer les images associées aux animaux énumérés précédemment?

Espérons que vous obtenez un coup de pied de ridicule cette question semble, mais je jure que c'est une question sérieuse qui me rend fou et je ne savais pas comment le décrire autrement.

Répondre

0

Felixs de réponse fonctionne probablement, mais il semble que vous pensez de ce point de vue-angle manipulation, et non un angle modèle de manipulation. On dirait que vous avez vraiment deux modèles parallèles: la liste des animaux et l'ensemble des images. Pourquoi ne pas simplement reloadData quand l'une ou l'autre chose change et reconstruit les cellules de manière appropriée depuis l'intérieur de votre contrôleur?

Atteindre les cellules existantes en fonction de leur indice me semble fragile.

+0

Je ne suis pas sûr que je suis ceci:/ – wierddemon

+0

quixito est juste-ma réponse est une façon un peu rapide de répondre à votre question. Vous devriez plutôt changer vos données, parce que vous pourriez également avoir besoin d'accéder à d'autres attributs basés dessus (tels que la taille de rangée). – Felixs

+0

Quelle est la meilleure façon d'associer imageView.image à l'élément pour pouvoir le reconstruire de cette façon? – wierddemon

0

J'espère que j'ai l'extrémité droite du bâton, mais: Dans la méthode cellForRowAtIndexPath:, vous pourriez obtenir un pointeur vers la cellule précédente (et donc les images associées, texte, etc.):

NSIndexPath *indexPathForPreviousCell=[NSIndexPath indexPathForRow:indexPath.row+1 inSection:indexPath.section]; 
    UITableViewCell *previousCell=[tableView cellForRowAtIndexPath:indexPathForPreviousCell]; 

J'espère que c'est ce que vous avez besoin ...

+0

Lorsque j'essaie cela, je reçois (null) quoi que ce soit en réponse à previousCell – wierddemon

Questions connexes