sizeWithFont ne donne pas la hauteur correcte pour UITextView s'il y a une longue chaîne dans le texte qui est enveloppé

Est-il un moyen pour obtenir la taille correcte d'un NSString à l'aide de:

- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode

ce n'est pas pour l'obtenir jeté par 2 ou 3 centaines de chaînes de caractères. À l'heure actuelle si j'essaie d'utiliser cette méthode sur ces longues chaînes qu'il calcule de manière incorrecte et je me retrouve avec beaucoup d'espaces au bas de la UITextView.

J'ai essayé d'utiliser UILineBreakModeWordWrap et UILineBreakModeCharacterWrap.

le redimensionnement est effectué dans

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    CGFloat     result = 44.0f;
    NSString*   text = nil;
    CGFloat     width = 0;
    CGFloat     tableViewWidth;
    CGRect      bounds = [UIScreen mainScreen].bounds;

    tableViewWidth = bounds.size.width;


    width = tableViewWidth - 150;       

    text = stringWithLongWords;

    if (text) {
        CGSize      textSize = { width, 20000.0f };     
        CGSize      size = [text sizeWithFont:[UIFont systemFontOfSize:10.0f] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];

        size.height += 50.0f;               
        result = MAX(size.height, 44.0f+30.0f); 
    }

    return result;
}

source d'informationauteur