当label文本框大小一定的情况下,而要显示的文本内容长度大于label的weight是,多出的内容只能用....代替了。如何能让文本内容不管多少都能全部的显示出来呢。在这里就写了一个UILabel的类目,该类目的方法就能很好的解决这一问题。
代码如下;
#import <UIKit/UIKit.h>
@interface UILabel (AutoResize)
-(CGRect)matchedRect;
-(void)setFrameLabelWithOrigin:(CGPoint)point;
@end
#import "UILabel+AutoResize.h"
@implementation UILabel (AutoResize)
-(CGRect)matchedRect{
self.font = [UIFont systemFontOfSize:13];
self.numberOfLines = 0;
return [self.text boundingRectWithSize:CGSizeMake(300, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: self.font} context:nil];
}
-(void)setFrameLabelWithOrigin:(CGPoint)point{
CGRect rect = [self matchedRect];
[self setFrame:CGRectMake(point.x, point.y, rect.size.width, rect.size.height)];
}
@end
上面类目中定义的两个方法实现了文本字体大小的设置、文本行数的设置以及最主要的label大小的自适应。有了这个UILabel类目之后,以后如果在遇到任何有关UILabel高度自适应的问题 都可以使用该类目进行解决。