要使用 Masonry 实现这个需求,基本步骤与前述方法类似。你需要:
使用 Masonry 来设置 UILabel 的固定宽度和最大高度;
动态赋值富文本;
监听 UILabel 的高度变化;
当高度超出最大高度时,自定义截断富文本。
步骤 1: 创建 UILabel,使用 Masonry 设置宽度和最大高度
首先,使用 Masonry 来设置 UILabel 的宽度和最大高度。Masonry 是一个方便的布局框架,可以让我们轻松地设置约束。
#import "Masonry.h"
UILabel *label = [[UILabel alloc] init];
label.numberOfLines = 0; // 允许多行显示
label.lineBreakMode = NSLineBreakByWordWrapping; // 使用单词折行
label.font = [UIFont systemFontOfSize:14];
label.textColor = [UIColor blackColor];
[self.view addSubview:label];
// 使用 Masonry 设置约束
[label mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view.mas_top).offset(10); // 距离顶部 10
make.left.equalTo(self.view.mas_left).offset(10); // 距离左侧 10
make.width.equalTo(@300