В IOS 6, я использую:Динамического изменения размеров этикетки в прошивке 7
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);
Для динамического изменения размера UILabel. Это не работает в прошивке 7, так что я пробовал:
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);
Это внутри категории на UILabel, но это не работает и ... Любые идеи, что я должен использовать?
Какая часть не работает? Является ли рассчитанный размер кадра неправильным, или это изменение размера метки не происходит? – tarmes