iOS根据文字计算控件的高度

-(void)viewDidLoad {
    [super viewDidLoad];
    NSString *massageStr =
@"\t预计,受寒潮影响,6日夜间至9日,我国中东部大部地区自北向南将先后出现大范围大风降温和雨雪天气,平均气温将普遍下降4℃以上,
其中,青海东部、陕西北部、内蒙古中部、山西北部、贵州东南部、湖南中南部、江西中南部、福建西部、
广西北部和广东北部等地气温将下降8℃以上,局地超过10℃。长江以北地区并伴有4~6级偏北风,东部和南部海区风力有7~9级。。
\r\n \t预计,受寒潮影响,6日夜间至9日,我国中东部大部地区自北向南将先后出现大范围大风降温和雨雪天气,平均气温将普遍下降4℃以上,其中,
青海东部、陕西北部、内蒙古中部、山西北部、贵州东南部、湖南中南部、江西中南部、福建西部、广西北部和广东北部等地气温将下降8℃以上,
局地超过10℃。长江以北地区并伴有4~6级偏北风,东部和南部海区风力有7~9级。。";
    CGFloat height = [[self labelTextAttributed:massageStr]boundingRectWithSize:CGSizeMake(self.view.frame.size.width - 100, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigincontext:nil].size.height;

// 注意:返回大于height的整数
 self.contentLabel.height = ceilf(height);
}
- (NSAttributedString *)labelTextAttributed:(NSString *)text
{
    //富文本设置文字行间距
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStylealloc]init];
    paragraphStyle.lineSpacing =10;
    NSDictionary *attributes =@{NSFontAttributeName:[UIFontfontWithName:@"AmericanTypewriter"size:12],NSParagraphStyleAttributeName:paragraphStyle};
    return [[NSAttributedStringalloc]initWithString:textattributes:attributes];
}

注意 : 文字的字体要与控件的字体和字体的大小一致 例如: [UIFont systemFontOfSize:14]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容