Comment puis-je configurer une propriété imbriqué si l'objet doit être jeté?
-
19-09-2019 - |
Question
Dans ma méthode pour définir les étiquettes dans mes cellules (pour un UITableView) Je lis dans « id » qui est en fait un UITableViewCell depuis que je lis dans plusieurs différents types de cellules. I.e.:.
-(void)setMyCell:(id)cell atIndexPath:(NSIndexPath*)indexPath;
Certaines 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 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 un peu en désordre que je dois 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 ne le fait pas dans ce cas.
est-il possible de simplement mettre textLabel.text sans créer une nouvelle UILabel?
La solution
Avez-vous essayé d'ajouter une catégorie à UITableViewCell
avec votre méthode de changement de libellé, puis remplaçant cette méthode dans CustomCell
?