zoukankan      html  css  js  c++  java
  • 一个label 混搭不同颜色,不同字体的文字.. by 徐

    效果如图箭头所示,只需要一个label就可以做到不同颜色或不同字体的效果

     1     UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 80, 150, 30)];
     2     label.numberOfLines = 0;
     3     [self.view addSubview:label];
     4     //固定文字  此文字为 黑色 16号
     5     NSString *staticStr = @"好评度:";
     6     
     7     //动态文字  此文字为 红色 16号 粗体
     8     NSString *dyStr = @"96\%";
     9     
    10     //完整要显示的文字
    11     NSString *tmpStr = [NSString stringWithFormat:@"%@%@",staticStr,dyStr];
    12     
    13     //创建一个可变的attribute文字
    14     NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:tmpStr];
    15     
    16     //获得固定文字的范围
    17     NSRange staticStrRange = [tmpStr rangeOfString:staticStr];
    18     //设置固定文字的字体
    19     //颜色
    20     [str addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:staticStrRange];
    21     //字号
    22     [str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:staticStrRange];
    23     
    24     //获得动态文字的范围
    25     NSRange dyStrRange = [tmpStr rangeOfString:dyStr];
    26     //设置动态文字的字体
    27     //颜色
    28     [str addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:dyStrRange];
    29     //字号
    30     [str addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:16] range:dyStrRange];
    31     //label设置attribute文字
    32     label.attributedText = str;

    原理:label有attribute文字,通过arrtibute特性给文字添加相应的字体,颜色等

  • 相关阅读:
    高并发系统中的常见问题
    区块链需要解决诸多问题
    什么是“区块链”技术
    github源码开源区块链浏览器
    JavaScript 内存
    行为驱动开发(BDD)
    Vue.js
    Net程序员学习Linux
    Mybatis数据操作
    Metatable和Metamethod(转)
  • 原文地址:https://www.cnblogs.com/sixindev/p/4588875.html
Copyright © 2011-2022 走看看