• 一个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特性给文字添加相应的字体,颜色等

  • 相关阅读:
    力扣3. 无重复字符的最长子串
    力扣724. 寻找数组的中心索引
    力扣105. 从前序与中序遍历序列构造二叉树
    力扣541. 反转字符串 II
    力扣496. 下一个更大元素 I
    力扣129. 求根到叶子节点数字之和
    力扣628. 三个数的最大乘积
    力扣415. 字符串相加
    力扣409. 最长回文串
    力扣404. 左叶子之和
  • 原文地址:https://www.cnblogs.com/sixindev/p/4588875.html
Copyright © 2020-2023  润新知