2009-08-24 7 views
1

Dans ma méthode pour définir des étiquettes dans mes cellules (pour un UITableView) je lis dans 'id' qui est en fait un UITableViewCell puisque je lis dans plusieurs types de cellules. I.e. .:Comment définir une propriété imbriquée si l'objet doit être casté?

-(void)setMyCell:(id)cell atIndexPath:(NSIndexPath*)indexPath; 

Certaines des cellules sont de type générique UITableViewCellStyle tandis que d'autres sont plus complexes et charger une etc. NIB pour les différentes sections.

Pour accéder à une propriété de texte UILabel pour mes cellules personnalisées que je peux faire quelque chose comme

[(CustomCell*) cell setMyTextLabel:@"text"]; 

et je peux créer une méthode dans la classe CustomCell pour définir le texte de l'étiquette.

Pour les cellules génériques, l'étiquette est appelée 'textLabel'. Je pense que je peux faire quelque chose comme

[(UITableViewCell*) cell setTextLabel:<new UILabel here>]; 

mais cela semble quelque peu désordonné car j'ai besoin de créer un nouveau UILabel.

J'ai essayé

(UITableViewCell*)cell.textLabel.text = @"text"; 

qui fonctionnerait si la cellule était de la classe UITableViewCell, pas id, mais il n'a pas dans ce cas.

Alors est-il possible de simplement définir textLabel.text sans créer un nouvel UILabel?

Répondre

0

Avez-vous essayé d'ajouter une catégorie à UITableViewCell avec votre méthode de changement d'étiquette, puis de remplacer cette méthode par CustomCell?

Questions connexes