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

  • 相关阅读:
    转 linux shell自定义函数(定义、返回值、变量作用域)介绍
    转 Shell调试篇
    WIN2012的桌面和开始菜单跑到什么地方去了
    转 awr自动收集脚本
    Troubleshooting Guide for ORA-12541 TNS: No Listener
    test
    向Linus学习,让代码具有good taste
    php 页面展示
    c++ list sort
    c++ word类型
  • 原文地址:https://www.cnblogs.com/sixindev/p/4588875.html
Copyright © 2011-2022 走看看