TMAttributedLabel 0.0.4

TMAttributedLabel 0.0.4

Heqiang1992维护。



  • solehe

TMAttributedLabel

一款基于TTTAttributedLabelM80AttributedLabel实现的富文本显示 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 文件。