iOS: UILabel dynamique de la hauteur à l'aide de sizeWithFont:constrainedToSize:lineBreakMode: pas de travail

J'essaie de donner mon UILabel dynamique de hauteur, alors que ma mise en page des étiquettes d'autres semble correct à la fois paysage et portrait.

En mode portrait, mon texte est renvoyé à la deuxième ligne, dans le paysage, il ne le fait pas. Ainsi, lors de l'utilisation de sizeWithFont:constrainedToSize:lineBreakMode: - je obtenir la même hauteur lors de la rotation dans les deux sens, quand j'avais supposé qu'il serait d'un plus grand nombre lorsque le texte était de 2 lignes.

Comment puis-je obtenir la hauteur de mes UILabel quand il dispose de deux lignes de texte ou plus (portrait) et obtenir la nouvelle hauteur, qui est une ligne, en mode paysage?

Je suppose que je ne suis pas la compréhension de la façon d'obtenir la dynamique de la hauteur de travail...

UILabel *itemTitle = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, top, screen.size.width - 20, 200.0f)];
itemTitle.text = self.newsAsset.title;
itemTitle.adjustsFontSizeToFitWidth = NO;
itemTitle.autoresizingMask = UIViewAutoresizingFlexibleWidth;
itemTitle.font = [UIFont boldSystemFontOfSize:18.0];
itemTitle.textColor = [UIColor blackColor];
itemTitle.shadowColor = [UIColor whiteColor];
itemTitle.shadowOffset = CGSizeMake(0, 1);
itemTitle.backgroundColor = [UIColor blueColor];
itemTitle.lineBreakMode = UILineBreakModeWordWrap;
itemTitle.numberOfLines = 0;
[itemTitle sizeToFit];

//Set the height
CGSize maximumLabelSize = CGSizeMake(300,9999);
CGSize titleSize = [itemTitle.text sizeWithFont:itemTitle.font constrainedToSize:maximumLabelSize lineBreakMode:itemTitle.lineBreakMode];

NSLog(@"Height: %.f  Width: %.f", titleSize.height, titleSize.width);

//Adjust the label the the new height
CGRect newFrame = itemTitle.frame;
newFrame.size.height = titleSize.height;
itemTitle.frame = newFrame;

//Add them!
[headerView addSubview:itemTitle];
[itemTitle release];

top += titleSize.height;
de quoi êtes-vous en passant que le constrainedToSize: argument? pouvons-nous voir un peu de code?
Mise à jour avec le code.

OriginalL'auteur Nic Hubbard | 2011-04-04