Como faço para definir uma propriedade aninhada se o objeto precisar ser lançado?
-
19-09-2019 - |
Pergunta
No meu método para definir rótulos nas minhas células (para uma visão de Uitable) que estou lendo em 'ID', na verdade é um uitableViewCell, já que estou lendo em vários tipos diferentes de células. Ou seja:
-(void)setMyCell:(id)cell atIndexPath:(NSIndexPath*)indexPath;
Algumas das células são do tipo genérico de UableViewCellStyle, enquanto outras são mais complicadas e carregam uma ponta etc. para as diferentes seções.
Para acessar uma propriedade de texto uilabel para minhas células personalizadas, posso fazer algo como
[(CustomCell*) cell setMyTextLabel:@"text"];
E posso criar um método na classe CustomCell para definir o texto do rótulo.
Para as células genéricas, o rótulo é chamado de 'textlabel'. Eu acho que posso fazer algo como
[(UITableViewCell*) cell setTextLabel:<new UILabel here>];
Mas isso parece um tanto confuso, pois preciso criar um novo Uilabel.
eu tentei
(UITableViewCell*)cell.textLabel.text = @"text";
o que funcionaria se Cell fosse da classe UitableViewCell, não ID, mas não neste caso.
Então, existe alguma maneira de definir o textlabel.text sem criar um novo Uilabel?
Solução
Você já tentou adicionar uma categoria a UITableViewCell
com seu método de mudança de etiqueta e depois substituindo esse método em CustomCell
?