在 calculateUI 中完善计算文字高度的代码,可以使用以下方法:

  1. 获取 UILabel 的字体和宽度:
UIFont *font = label.font;
CGFloat width = label.frame.size.width;
  1. 设置 UILabel 的行数为 0,以自动计算文字所需的高度:
label.numberOfLines = 0;
  1. 使用 NSString 的方法 'boundingRectWithSize:options:attributes:context:' 计算文字的高度:
CGSize textSize = [text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX)
                                     options:NSStringDrawingUsesLineFragmentOrigin
                                  attributes:@{NSFontAttributeName: font}
                                     context:nil].size;
CGFloat height = ceil(textSize.height);

这里的 'text' 是要计算高度的文字内容。

  1. 更新 UILabel 的高度:
CGRect frame = label.frame;
frame.size.height = height;
label.frame = frame;

完整代码示例:

UIFont *font = label.font;
CGFloat width = label.frame.size.width;

label.numberOfLines = 0;

CGSize textSize = [text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX)
                                     options:NSStringDrawingUsesLineFragmentOrigin
                                  attributes:@{NSFontAttributeName: font}
                                     context:nil].size;
CGFloat height = ceil(textSize.height);

CGRect frame = label.frame;
frame.size.height = height;
label.frame = frame;
iOS UILabel 自动计算文字高度 - calculateUI 完善代码

原文地址: https://www.cveoy.top/t/topic/bRgq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录