Alterar a largura da etiqueta dinamicamente dentro de um UITableViewCell

Eu estou tentando criar uma exibição de tabela personalizada.

Como você pode ver na figura, eu defino a largura da etiqueta por padrão como 160 pontos no lado do storyboard e mudo a largura na hora quando a tabela é carregada. Eu estou implementando isso modificando o método delegado "cellForRowAtIndexPath".

Então, com base na duração da data, eu estou definindo a largura do Label1 para o máximo utilizar o imóvel na tela do telefone.

    CGFloat timeStampWidth = [cell.timestamp.text sizeWithFont:cell.timestamp.font].width;
    CGFloat ksCompanyNameLableMaxWidth = 235;
    NSLog(@"timeStampWidth:%f", timeStampWidth);
    CGSize companyNameLableSize = CGSizeMake((ksCompanyNameLableMaxWidth - timeStampWidth), cell.companyNameLabel.frame.size.height);
    CGRect newFrame = cell.companyNameLabel.frame;
    newFrame.size = companyNameLableSize;
    cell.companyNameLabel.frame = newFrame;

Mas quando eu carrego o aplicativo, todos os label1s são definidos como 160 pontos como definidos no storyboard, embora pela depuração eu vi meu código ser executado para cada célula.

Para minha surpresa, se eu rolar para baixo e rolar de volta para cima novamente. O bloco de código está sendo chamado novamente e o rótulo está definido como desejo.

Além disso, se eu alternar entre as guias, a etiqueta é restaurada para o status anormal novamente.

questionAnswers(3)

yourAnswerToTheQuestion