J'ai deux largeurs possibles pour une chaîne que je veux afficher dans une étiquette dans une cellule de tableau, et j'ai besoin de calculer la hauteur de sorte que la hauteur de la cellule du tableau soit correctement enregistrée. Cependant, peu importe ce que je fais pour la taille contraignante, je reçois la même hauteur, ce qui est incorrect dans le cas où je veux. Le code im en utilisant:Pourquoi sizeWithFont: constrainedToSize: lineBreakMode: retourne une taille incorrecte?
CGFloat width = 300.0f;
NSString * value = @"LongText LongText LongText LongText LongText LongText";
CGSize contentSize = [value sizeWithFont: [UIFont systemFontOfSize: 14.0f]
constrainedToSize: CGSizeMake(width, CGFLOAT_MAX)
lineBreakMode: UILineBreakModeWordWrap];
Lorsque la variable i inspecter contentSize, la largeur est de 252 et la hauteur est de 36 ce qui est attendu. Mais si au lieu de 300.0fi branchez 222.0f dans la variable width, la largeur est de 189 mais la hauteur est toujours de 36, et seuls les 4 premiers mots LongText sont affichés sur 2 lignes (la troisième ligne semble être coupée d'une façon ou d'une autre) calcul). Est-ce que quelqu'un sait pourquoi cela se passe?
Si vous utilisez un UITextView, jetez un oeil à ma réponse ici: http://stackoverflow.com/questions/2330939/sizewithfont-doesnt-give-correct-height-for-uitextview-if-there-is -a-long-strin/15408198 # 15408198 – domsom