Como consistentemente desenhar NSAttributedString no UITextView no UITableViewCell

Estou tendo problemas para obter resultados consistentes do UITextViews em um UITableViewCell usando NSAttributedStrings.

Inside - (UITableViewCell *) tableView: (UITableView *) tableVisualização cellForRowAtIndexPath: (NSIndexPath *) indexPath:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    headerText = [[UITextView alloc]initWithFrame:CGRectZero];
    [headerText setUserInteractionEnabled:NO];
    headerText.tag = HEADER_TEXT;
    [cell.contentView addSubview:headerText]; 
} else {
    headerText = (UITextView*)[cell.contentView viewWithTag:HEADER_TEXT];
}

//...setting up attributed strings


[headerText setAttributedText:headerString];

CGSize headerSize = [headerText sizeThatFits:CGSizeMake(246, CGFLOAT_MAX)];

headerText.frame = CGRectMake(45, 8, headerSize.width, headerSize.height);

Resultados:

Como você pode ver, os dois primeiros parecem desenhar o texto de uma maneira que eu esperaria / desejaria. Nos dois últimos, o método UITextView sizeThatFits retorna um tamanho muito maior, em seguida, é necessário para desenhar o texto e o texto fica centrado no quadro, em vez de ficar apertado na parte superior do quadro. Isso é um problema porque quero poder criar outras visualizações com base na altura do quadro do uitextview.

Depois de rolar para fora do quadro e voltar em:

Agora fica ainda mais estranho, quando as células são reutilizadas e a cadeia atribuída é definida novamente. o uitextview desenha o texto de maneira inconsistente.

Mesmo definindo o contentInsets para

headerText.contentInset = UIEdgeInsetsMake(-8, -8, -8, -8);

Não fornece nenhum tipo de resultado consistente:

E depois de rolar com o conjunto contentinset:

Existem outros atributos no UITextView que me permitem obter o comportamento de que preciso?

questionAnswers(1)

yourAnswerToTheQuestion