由字符串宽度(高度),获得其高度(宽度)。从而来实现控件的宽或者高的自适应(由获取到的宽度或者高度来根据情况修改约束)
实现方法
//已知字符串的字号和高度,获取其宽度的方法
CGFloat width = [self contentHeightWithSize:12 height:12 string:@"字符串内容"];
-(CGFloat)contentHeightWithSize:(CGFloat)size height:(CGFloat)height string:(NSString *)string{
//第一个参数:是进行自适应的尺寸 第二个参数:布局格式 第三个参数:字符串的属性列表 第四个忽略
CGRect rect = [string boundingRectWithSize:CGSizeMake(0, height) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:size]} context:nil];
return rect.size.width;
}
//已知字符串的字号和宽度,获取其高度的方法 ---- 用的是同一个方法
CGFloat height = [self contentHeightWithSize:12 with:60 string:@"字符串内容"];
-(CGFloat)contentHeightWithSize:(CGFloat)size with:(CGFloat)with string:(NSString *)string{
//第一个参数:是进行自适应的尺寸 第二个参数:布局格式 第三个参数:字符串的属性列表 第四个忽略
CGRect rect = [string boundingRectWithSize:CGSizeMake(with, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:size]} context:nil];
return rect.size.height;
}