Como faço para definir uma propriedade aninhada se o objeto precisar ser lançado?

StackOverflow https://stackoverflow.com/questions/1321217

  •  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?

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top