@implementation UILabel (dynamicSizeWidth)
- (void)resizeToStretch {
float width = [self expectedWidth];
CGRect newFrame = [self frame];
newFrame.size.width = width;
[self setFrame:newFrame];
}
- (float)expectedWidth{
[self setNumberOfLines:1];
CGSize maximumLabelSize = CGSizeMake(CGRectGetWidth(self.bounds), CGFLOAT_MAX);
CGSize expectedLabelSize = [[self text] sizeWithFont:[self font]
constrainedToSize:maximumLabelSize
lineBreakMode:[self lineBreakMode]];
return expectedLabelSize.width;
}
@end
За iOS6 вы можете использовать Autolayout, установить количество строк до 0, а структура будет изменять размер этикетки соответственно, чтобы соответствовать вашему тексту.
В чем заключается ваш результат? –
удалите верхнюю/нижнюю прокладку на второй этикетке и получите размер, который лучше подходит для контента –