2010-08-25 8 views
2

J'ai une vue de table avec 9 lignes au minimum. Les couleurs d'arrière-plan des cellules dépendront de la position de la cellule. Si elle est inférieure à 3 ou inférieure à 6 ou inférieure à 9, la couleur d'arrière-plan change (voir l'image suivante).Comment changer la couleur d'arrière-plan d'une cellule de vue de table après son déplacement?

alt text

Le problème est que ce point de vue de la table peut être réorganisés et je dois maintenir le même modèle de couleur. Exemple: si je change la 4ème rangée en 3ème position, sa couleur de fond doit passer du jaune au rouge.

Pour obtenir les différentes couleurs, j'ai utilisé la méthode - (void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath, mais cette méthode n'est appelée que lorsque la cellule sera affichée et n'est pas bonne pour réorganiser les problèmes (la cellule est déjà affichée et la couleur ne change pas) . J'ai déjà essayé de créer une méthode pour changer la couleur d'arrière-plan appelée juste après le déplacement de la ligne, mais la couleur n'a pas changé (il semble que changer la couleur d'arrière-plan avec la propriété cell.backgroundColor fonctionne uniquement dans - (void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath). :(

Toute idée comment je peux le faire?

Merci à l'avance.

Répondre

1

Ajustez la position dans votre mais vous faites source de données, puis dire à votre source de données pour recalculer les couleurs pour chaque élément en fonction de leur position actuelle, puis recharger votre vue de table.Il devrait "juste travailler"

+0

Que faire si les cellules sont déplacées par programmation, via des modifications apportées au modèle CoreData et un NSFetchedResultsController? – radven

Questions connexes