在界面布局中,UILabel的宽高的计算是少不了的,这里我把UILabel宽高的计算写在了UILabel的类目中,具体实现如下:
.h文件
#import <UIKit/UIKit.h>
@interface UILabel (UILabelCategory)
- (CGSize)sizeWithMaxSize:(CGSize)maxSize;
@end
.m文件
#import "UILabel+UILabelCategory.h"
@implementation UILabel (UILabelCategory)
- (CGSize)sizeWithMaxSize:(CGSize)maxSize
{
NSDictionary *dict = @{NSFontAttributeName: self.font};
//如果将来计算的文本小于指定的范围,那么返回的就是实际大小
//如果将来计算的文本超出了指定范围,那么返回的就是指定范围
CGSize size = [self.text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size;
return size;
}