實(shí)際開發(fā)中我們經(jīng)常會遇到根據(jù)文字多少計算label高度的問題缚俏,以下提供兩個方法:
先建立一個label
_atest = [[UILabel alloc]initWithFrame:CGRectZero];
_atest.numberOfLines = 0;
_atest.lineBreakMode = NSLineBreakByWordWrapping;
設(shè)置這個label的基礎(chǔ)寬度(以200為例)惊搏,高度設(shè)置為最大值
CGSize baseSize = CGSizeMake(200, CGFLOAT_MAX);
方法一:根據(jù)label中的內(nèi)容計算高度(_testStr為字符串)
CGSize labelsize = [_testStr
boundingRectWithSize:baseSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15.0]}
context:nil].size;
_atest.height = labelsize.height;
方法二:根據(jù)label的自適應(yīng)獲取高度
CGSize labelsize = [_atest sizeThatFits:baseSize];
_atest.height = labelsize.height;
動態(tài)寬度的獲取與高度一樣,只不過是把基礎(chǔ)寬度設(shè)置為最大忧换,高度固定就可以了
CGSize baseSize = CGSizeMake(CGFLOAT_MAX, 200);