2015-10-16 27 views

回答

0
@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的,你可以使用自动布局,线条数量设置为0,框架会适当地调整你的标签,以满足您的文字。