2009-03-16 8 views
3

J'ai cinq cellules différentes dans une table sur cinq sections qui diffèrent simplement par la hauteur et le texte. Aurai-je besoin d'un identifiant de réutilisation ou de cinq? J'utilise une cellule personnalisée.UITableViewCell Identifiant de réutilisation avec des cellules à hauteur variable

Le document Apple parle de réutilisation avec une cellule ayant la même configuration générale. Est-ce que la hauteur différente rend chacune différente pour les perspectives de mise en cache et de réutilisation. Je peux utiliser des polices différentes, mais le reste des éléments entre les cellules est le même, la couleur etc.

Lorsque j'applique cette table et que j'appuie sur une nouvelle table, la hauteur de la nouvelle cellule du tableau varie en fonction de la quantité de texte dans la nouvelle sélection de ligne.

Depuis mon appareil semble déjà chaud pendant l'exécution de mon application, je veux juste m'assurer que je le fais efficacement. Je veux réutiliser le cache et les cellules dans la table ainsi que lors du rechargement de table avec de nouvelles données.

J'apprécierais quelques suggestions.

Répondre

2

Vous pouvez avoir un identifiant unique réutilisation, mais pour changer la hauteur, vous devrez implémenter la méthode UITableViewDelegate:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

Cela dit, je ne peux pas imaginer une cellule qui est 44 pixels de haut et un autre de 70 pixels de haut ayant la même configuration générale. S'ils sont si différents en hauteur, ils auront probablement des contenus très différents et nécessitera des identifiants de réutilisation différents.

+0

Je cherche à faire cela, et la seule différence est que certaines cellules ont des images plus grandes que d'autres donc il y a un cas où la hauteur variable fonctionnerait pour le même identifiant de réutilisation. – Kevlar

+2

* Si leur hauteur est différente, ils auront probablement des contenus différents, ce qui nécessitera des identifiants de réutilisation différents. * Pas vraiment. La surcharge de mémoire vient de devoir créer et détruire des objets comme des étiquettes, des vues de texte et des boutons. Si vous changez simplement de taille mais que vous gardez la même disposition générale (c.-à-d.: Mêmes objets), cela devrait fonctionner et mieux fonctionner pour réutiliser les cellules. –

Questions connexes