2009-03-25 14 views
3

En fonction du résultat d'une condition, je souhaite afficher une UIImageView dans une cellule de tableau. Sinon, affichez UITableViewCellAccessoryCheckmark. Je voudrais construire la cellule dans IB. La partie Je ne suis pas sûr de ce qu'il faut faire avec UIImageView quand je ne veux pas l'afficher. Si je construisais tout par programmation, j'ajouterais UIImageView comme nécessaire. Mais comme cela sera fait dans IB, UIImageView est toujours là. Si la valeur par défaut est de laisser la cellule seule (l'image s'affiche), sinon, supprimez UIImageView et affichez UITableViewCellAccessoryCheckmark? Si cela est fait, aurai-je besoin d'un tag sur UIImageView pour pouvoir y accéder et le supprimer?Activation de l'affichage de l'image dans UITableViewCell

Répondre

6

Vous pouvez facilement contrôler la visibilité de n'importe quel contrôle, y compris UIImageView. Si vous souhaitez construire des éléments dans IB, une solution consiste à ajouter les contrôles dont vous avez besoin, à les exposer en tant que propriétés, puis à masquer ceux que vous ne voulez pas pour une cellule donnée.

E.g.

cell.image.hidden = YES; 

Quand ils ont caché sans nul-tête, et bien que votre cellule peut avoir des milliers de lignes, il y aura très peu de cellules réelles, il est donc une solution assez efficace. Souvenez-vous simplement que les cellules sont réutilisées si vous appelez [tableView dequeueReusableCellWithIdentifier] (ce que vous devez faire). Vous devrez donc afficher/masquer explicitement le contrôle dont la visibilité a peut-être été modifiée.

Une alternative est d'avoir des cellules avec et sans images et de choisir la bonne lors de l'ajout de données à votre table. Pour les cellules similaires, la gestion de deux actifs similaires, mais légèrement différents, serait probablement pénible.