iOS-UILabel的attributedText

f1、效果图


效果图.png

2、代码

/*
NSForegroundColorAttributeName  字体颜色
NSFontAttributeName  字体大小
NSUnderlineColorAttributeName 下划线颜色
NSUnderlineStyleAttributeName   下划线style
NSUnderlineStyleSingle    单线
NSUnderlineStyleDouble  双线

NSStrikethroughColorAttributeName   中间线颜色
NSStrikethroughStyleAttributeName   中间线style
*/
    NSString *textString = @"这个是用来演示的文字";
    
    //字符串字体大小、颜色全部统一样式
    UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, Screen_Width - 20, 50)];
    label1.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:label1];
    NSMutableAttributedString *str1 = [[NSMutableAttributedString alloc] initWithString:textString attributes:@{NSForegroundColorAttributeName:[UIColor redColor], NSFontAttributeName:[UIFont systemFontOfSize:30]}];
    label1.attributedText = str1;
    
    //字体大小、颜色不统一,只改变一种
    UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(10, 100 + 60, Screen_Width - 20, 50)];
    label2.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:label2];
    NSMutableAttributedString *str2 = [[NSMutableAttributedString alloc] initWithString:textString];
    [str2 addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 3)];
    [str2 addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:35] range:NSMakeRange(3, 7)];
    label2.attributedText = str2;
    
    //字体大小、颜色不统一,全部改变
    UILabel *label3 = [[UILabel alloc] initWithFrame:CGRectMake(10, 100 + 120, Screen_Width - 20, 50)];
    label3.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:label3];
    NSMutableAttributedString *str3 = [[NSMutableAttributedString alloc] initWithString:textString];
    [str3 addAttributes:@{NSForegroundColorAttributeName:[UIColor redColor], NSFontAttributeName:[UIFont systemFontOfSize:28]} range:NSMakeRange(0, 3)];
    [str3 addAttributes:@{NSForegroundColorAttributeName:[UIColor orangeColor], NSFontAttributeName:[UIFont systemFontOfSize:33]} range:NSMakeRange(3, 7)];
    label3.attributedText = str3;
    
    //在label3的基础上添加下划线
    UILabel *label4 = [[UILabel alloc] initWithFrame:CGRectMake(10, 100 + 180, Screen_Width - 20, 50)];
    label4.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:label4];
    NSMutableAttributedString *str4 = [[NSMutableAttributedString alloc] initWithString:textString];
    [str4 addAttributes:@{NSForegroundColorAttributeName:[UIColor redColor], NSFontAttributeName:[UIFont systemFontOfSize:28],  NSUnderlineColorAttributeName:[UIColor blackColor], NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle)} range:NSMakeRange(0, 3)];
    [str4 addAttributes:@{NSForegroundColorAttributeName:[UIColor orangeColor], NSFontAttributeName:[UIFont systemFontOfSize:33], NSUnderlineColorAttributeName:[UIColor redColor], NSUnderlineStyleAttributeName:@(NSUnderlineStyleDouble)} range:NSMakeRange(3, 7)];
    label4.attributedText = str4;
    
    //在label3的基础上,在文字中间添加横线
    UILabel *label5 = [[UILabel alloc] initWithFrame:CGRectMake(10, 100 + 240, Screen_Width - 20, 50)];
    label5.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:label5];
    NSMutableAttributedString *str5 = [[NSMutableAttributedString alloc] initWithString:textString];
    [str5 addAttributes:@{NSForegroundColorAttributeName:[UIColor redColor], NSFontAttributeName:[UIFont systemFontOfSize:28], NSStrikethroughColorAttributeName:[UIColor blueColor], NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)} range:NSMakeRange(0, 3)];
    [str5 addAttributes:@{NSForegroundColorAttributeName:[UIColor orangeColor], NSFontAttributeName:[UIFont systemFontOfSize:33], NSStrikethroughColorAttributeName:[UIColor purpleColor], NSStrikethroughStyleAttributeName:@(NSUnderlineStyleDouble)} range:NSMakeRange(3, 7)];
    label5.attributedText = str5;
    
    //在label3的基础上,添加图片
    UILabel *label6 = [[UILabel alloc] initWithFrame:CGRectMake(10, 100 + 300, Screen_Width - 20, 50)];
    label6.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:label6];
    NSMutableAttributedString *str6 = [[NSMutableAttributedString alloc] initWithString:textString];
    [str6 addAttributes:@{NSForegroundColorAttributeName:[UIColor redColor], NSFontAttributeName:[UIFont systemFontOfSize:28]} range:NSMakeRange(0, 3)];
    [str6 addAttributes:@{NSForegroundColorAttributeName:[UIColor orangeColor], NSFontAttributeName:[UIFont systemFontOfSize:33]} range:NSMakeRange(3, 7)];
    label6.attributedText = str6;
    NSTextAttachment *attach = [[NSTextAttachment alloc] init];
    attach.image = [UIImage imageNamed:@"ic_1"];
    attach.bounds = CGRectMake(0, -5, 32, 32);
    NSAttributedString *string6 = [NSAttributedString attributedStringWithAttachment:attach];
    [str6 appendAttributedString:string6];
    label6.attributedText = str6;

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 156,021评论 24 681
  • 近二十年没留过直发了,在潜意识里总以为卷发里有着小女人的柔情,有着温婉里的岁月暖香,很多时候那一头卷发干枯如一堆乱...
    安宁的世界阅读 54评论 0 0
  • 我的读者 更喜欢我的模样 他们在九相湾吃喝玩乐 把家做成冲凉房 游戏两场下来 男士衬衣挂在盆栽上面 周二我有个古巷...
    锄风少年阅读 91评论 3 1
  • 过年在家待了不到三天,就去对象家了, 今年过年是在家里待着时间最少的一年。 老爸喜欢打扑克,大年初二送神那天晚上,...
    可乐少年c阅读 80评论 2 1
  • 大学的时候比较闲,你们懂的。闲了总会找点事做,也忘了当时谁先带起来的,全宿舍突然掀起了一股学吉他的热潮。几周之内,...
    Mc爪子阅读 165评论 0 1