Redimensionner dynamiquement étiquette dans iOS 7

Dans iOS 6, je suis en utilisant :

CGSize labelSize = [self.text sizeWithFont:self.font constrainedToSize:size lineBreakMode:self.lineBreakMode];
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y , labelSize.width, self.frame.size.height);

De redimensionner dynamiquement un UILabel. Cela ne fonctionne pas sous iOS 7, donc j'ai essayé:

NSString *text = self.text;
CGFloat width = size.width;
UIFont *font = self.font;
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text
                                                                 attributes:@{ NSFontAttributeName: font }];

CGRect rect = [attributedText boundingRectWithSize:(CGSize){width, CGFLOAT_MAX}
                              options:NSStringDrawingUsesDeviceMetrics
                              context:nil];
CGSize size = rect.size;

self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y , size.width, self.frame.size.height);

C'est à l'intérieur d'une catégorie sur UILabel, mais ce n'est pas de travail aussi...
Les idées de ce que je devrais utiliser?

Ce n'est pas de travail? Est le calcul de la taille de la trame de mal, ou est la taille de l'étiquette changement ne se produit pas?

OriginalL'auteur user426132 | 2013-09-26