根据显示的字符多少来做Label的自适应高度
UILabel *label = [[UILabel alloc]init];
NSString *string = @"其实,经年过往,每个人何尝不是在这场虚妄里跋涉?在真实的笑里哭着,在真实的哭里笑着,一笺烟雨,半帘幽梦,许多时候,我们不得不承认:生活,不是不寂寞,只是不想说。\n于无声处倾听凡尘落素,渐渐明白:人生,总会有许多无奈,希望、失望、憧憬、彷徨,苦过了,才知甜蜜;痛过了,才懂坚强;傻过了,才会成长。\n生命中,总有一些令人唏嘘的空白,有些人,让你牵挂,却不能相守;有些东西,让你羡慕,却不能拥有;有些错过,让你留恋,却终生遗憾。\n在这喧闹的凡尘,我们需要有适合自己的地方,用来安放灵魂。\n也许,是一座安静宅院;也许,是一本无字经书;也许,是一条迷津小路。只要是自己心之所往,便是驿站,为了将来起程时,不再那么迷惘。\n红尘三千丈,念在山水间。生活,不总是一帆风顺。因为爱,所以放手;因为放手,所以沉默;因为一份懂得,所以安心着一个回眸。\n也许,有风有雨的日子,才承载了生命的厚重;风轻云淡的日子,更适于静静领悟。";
// 计算字符若显示的宽度与label一样宽时,它需要的高度
CGRect r = [string boundingRectWithSize:CGSizeMake(,) options:(NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:.f]} context:nil];
label.frame = CGRectMake(, , , r.size.height);
label.text = string;
label.numberOfLines = ;
label.backgroundColor = [UIColor cyanColor];
[self.view addSubview:label];
将label的高度设置为字符计算出来所需要的高度即可
显示效果:(淡蓝色为label的背景色。)