设置attributedText的坑

    [self.view addSubview:({
        //描述
        UILabel * descriptionL = [[UILabel alloc]initWithFrame:CGRectMake(30,340,150,50)];
        descriptionL.numberOfLines = 3;
        descriptionL.attributedText = [self attributedStringWithText:@"贴心在线,省心调解;上门代收索赔资料,由5000元升级到万元;免勘现场、无忧定损单证简化。官方微信"];
        descriptionL.font = [UIFont systemFontOfSize:10];
        descriptionL.lineBreakMode = NSLineBreakByTruncatingMiddle;
        descriptionL;
    })];
  1. lineBreakMode三个属性都是用于截断最后一行文本的。
    例子中,label有三行,无论lineBreakMode是head,meddle或tail,都是截断第三行的文本。

  2. lineBreakMode必须放在attributedText下面。否则不起作用:
    API的解释:

用于包装和截断标签文本的技术。
如果不使用样式文本,则此属性应用于text属性中的整个文本字符串。
如果使用的是样式文本,则为此属性分配一个新值以使lineBreakMode应用于属性文本属性中的整个字符串。
如果要将lineBreakMode应用于文本的一部分,请使用所需的样式信息创建一个新的属性字符串,并将其与标签关联。
但是,NSParagraphStyle属性(如由NSLineBreakMode定义的那些属性)适用于整个段落(如为paragraphRangeForRange定义),而不是段落内的单词。
此属性在正常绘图期间以及必须缩小字体大小以适应边界框中的标签文本的情况下均有效。
该属性默认设置为NSLineBreakByTruncatingTail。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • HTML标签解释大全 一、HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(D...
    米塔塔阅读 3,360评论 1 41
  • 人跟人之间有一个安全地带,保持距离,伤不得身。人心之间,也像隔着一道防护墙,步步为营,伤不着心。 你愿意为谁无私奉...
    宁青是晴阅读 337评论 0 0
  • 有的时候,经过了一天的忙碌,下班的时候很想吃点让人温暖起来的饭,面条还是米饭?都是吃腻了,也不知道这么多的食物,应...
    老milk麻麻阅读 153评论 0 0
  • CrossFit,于2000年起源于美国,是近几年被健身爱好者热捧的健身项目。2015年的数据统计显示,全世界已经...
    人马君FITSTART阅读 1,208评论 2 17