ios 根据文字数量计算UILabel高度(已修改)

时间:2023-03-09 07:58:17
ios 根据文字数量计算UILabel高度(已修改)

由于留言的朋友给出了更好的方法,所以下面的代码都是它留言中给出的,优于我前面计算Lable高度方法,这个可以说非常的准,是IOS自带的计算UILABEL高度的方式.

一、实现代码

// 创建label
UILabel *label = [[UILabel alloc] init];
label.backgroundColor = [UIColor redColor];
label.numberOfLines = 0;
[self addSubview:label];

// 设置label的属性
label.font = [UIFont systemFontOfSize:14];
CGFloat labelWidth = [UIScreen mainScreen].bounds.size.width -100;

// 创建文字
NSString *string =@"《蛮荒记》的故事展开:大荒586年, 神农化羽,神帝之位悬空,引发金、木、水、火、土五族大战。神农传人拓跋野与义弟蚩尤联合对抗侵略者,双军交锋,大地却在战场*裂开,封印太古凶魔的皮母地丘重现人间,混沌一出,天下将亡。这版概念海报一经曝光,立刻引发不少网友围观。 2015年的影视圈,掀起了网络文学改编IP的热潮:根据《盗墓笔记》、《鬼吹灯》等热门IP改编的多部电视剧、电影相继上映。2016年伊始,阿里影业也放“大招”,正式宣布《蛮荒记》这一IP也将搬上大银幕。  据《蛮 48589829380912081720374109qw89908yoiuioqewropiu21iopqiwejl;skjv;lskjfd;lskjdfl;kjsd;lfkjasl;dfja;ldfjka;sldkfasdfasdfasdf";
label.text = string;

// 设置文字属性 要和label的一致
NSDictionary *attrs = @{NSFontAttributeName : label.font};
CGSize maxSize = CGSizeMake(labelWidth, MAXFLOAT);

// 计算文字占据的高度
CGSize size = [string boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;

// 设置label尺寸
label.frame = CGRectMake(50, 44, size.width, size.height);