TMAttributedLabel
一款基于TTTAttributedLabel和M80AttributedLabel实现的富文本显示 Label。
特别说明
在使用 TTTAttributedLabel 和 M80AttributedLabel 的过程中,发现它们的功能都非常实用,但都不能满足我的需求。例如,TTTAttributedLabel 对链接的识别和处理以及绘制非常有用,但不支持内嵌图片和控件。而 M80AttributedLabel 使用方便,扩展性强,但其基于 UIView 的实现使其失去了作为 Label 使用的一些优势,并且在绘制一些其他语言(如缅甸文)时无法达到与系统相同的显示效果。因此,在整合 TTTAttributedLabel 绘制的基础上,融合了 M80AttributedLabel 的一些特性,最终实现了 TMAttributedLabel。由于作者能力有限,不能完全从零开始开发,只能站在巨人的肩膀上,尽我所能为开源社区做出一些贡献。
特性
- 支持多行富文本显示
- 支持展示自定义链接
- 支持内嵌图片和控件
- 支持以下属性
字体
文本颜色
链接颜色
多行显示
文字左右对齐
文字上下对齐
换行模式
行间距
段落间距
最大行高
最小行高
多倍行高
边距
系统要求
- iOS 9.0 及以上
- 需要 ARC
集成
Podfile
pod 'TMAttributedLabel'
手动集成
git clone https://github.com/solehe/TMAttributedLabel
- 将
TMAttributedLabel
中的源代码复制到您的工程中
使用方法
基本用法
TMAttributedLabel *label = [[TMAttributedLabel alloc] initWithFrame:CGRectMake(20, 100, 335, 180)];
[label setBackgroundColor:[UIColor yellowColor]];
[label setLinkHighlightColor:[UIColor redColor]];
[label setLineSpacing:3.f];
[label setNumberOfLines:0];
[self.view addSubview:label];
[label append:@"风急天高猿啸哀,\n"];
[label append:@"渚清沙白鸟飞回。\n"];
[label append:@"无边落木萧萧下,\n"];
[label append:@"不尽长江滚滚来。\n"];
[label append:@"万里悲秋常作客,\n"];
[label append:@"百年多病独登台。\n"];
[label append:@"艰难苦恨繁霜鬓,\n"];
链接
NSString *linkString = @"无边落木萧萧下,";
NSRange range = [label.text rangeOfString:linkString];
[label addCustomLink:linkString forRange:range color:[UIColor blueColor]];
控件
UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectZero];
[label1 setText:@"潦倒新停浊酒杯。"];
CGFloat width = [label sizeThatFits:CGSizeMake(335, label.font.lineHeight)].width;
[label1 setFrame:CGRectMake(0, 0, width, label.font.lineHeight+3)];
[label append:label1 alignment:TMAttributedAlignmentTop];
联系我
许可证
TMAttributedLabel 使用 [MIT 许可证][MIT] 许可,详情请见 LICENSE 文件。