zoukankan      html  css  js  c++  java
  • iOS6之后 NSAttributedString 福利

             @于iOS6之前,需要使用NSMutableAttributedString当你需要导入:CoreText.framework框架的。但在iOS6 之后就不在须要了.

    - (void)testOfNSMutableAttributedStringAndNSAttributedString
    {
        /**
         *  - (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;
         *  主要方法
         *  name   属性名
         *  value  属性相应效果的值
         *  range  效果所映射的范围
         */
        
        #pragma mark  測试数据0
        NSString *testString = @"NSMutableAttributed---0";
        UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(60, 100, 200, 40)];
        NSMutableAttributedString * testAttriString = [[NSMutableAttributedString alloc] initWithString:testString];
        // 加入删除线
        [testAttriString addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:NSMakeRange(0, testAttriString.length)];
        // 加入下划线
        [testAttriString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:NSMakeRange(0, testAttriString.length)];
        // 设置文本的字体以及大小
        [testAttriString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:15] range:NSMakeRange(0, testAttriString.length)];
        // 设置笔画的粗细
        [testAttriString addAttribute:NSStrokeWidthAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleDouble] range:NSMakeRange(0, testAttriString.length)];
        // label的背景颜色
        [testAttriString addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(0, testAttriString.length)];
        // 眼下没測出什么效果.....
        [testAttriString addAttribute:NSVerticalGlyphFormAttributeName value:[NSNumber numberWithInt:1] range:NSMakeRange(0, testAttriString.length)];
        // label上文本颜色(也会影响删除线和下划线的颜色)
        [testAttriString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, testAttriString.length)];
        testLabel.attributedText = testAttriString;
        
        #pragma mark 測试数据1
        NSString *testString1 = @"NSMutableAttributed---1";
        UILabel *testLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(60, 200, 200, 40)];
        NSMutableAttributedString * testAttriString1 = [[NSMutableAttributedString alloc] initWithString:testString1];
        // 实现文本内容颜色和下划线,删除线的颜色不一样
        // NSStrokeColorAttributeName 单独设置没有效果
        // 必须与NSStrokeWidthAttributeName一起设置
        [testAttriString1 addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:NSMakeRange(0, testAttriString1.length)];
        [testAttriString1 addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, testAttriString1.length)];
        [testAttriString1 addAttribute:NSStrokeColorAttributeName value:[UIColor cyanColor] range:NSMakeRange(0, testAttriString1.length)];
        [testAttriString1 addAttribute:NSStrokeWidthAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleDouble] range:NSMakeRange(0, testAttriString1.length)];
        testLabel1.attributedText = testAttriString1;
        
        
        #pragma mark 測试数据2
        NSString *testString2 = @"NSMutableAttributed---2";
        UILabel *testLabel2= [[UILabel alloc] initWithFrame:CGRectMake(60, 300, 200, 40)];
        NSMutableAttributedString * testAttriString2 = [[NSMutableAttributedString alloc] initWithString:testString2];
        // 笔画的阴影效果
        NSShadow *shadow = [[NSShadow alloc] init];
        [shadow setShadowColor:[UIColor colorWithRed:0.053 green:0.088 blue:0.205 alpha:1.000]];
        [shadow setShadowBlurRadius:4.0];
        [shadow setShadowOffset:CGSizeMake(2, 2)];
        [testAttriString2 addAttribute:NSShadowAttributeName value:shadow range:NSMakeRange(0, [testAttriString2 length])];
        testLabel2.backgroundColor = [UIColor clearColor];
        testLabel2.attributedText = testAttriString2;
        
        [self.view addSubview:testLabel];
        [self.view addSubview:testLabel1];
        [self.view addSubview:testLabel2];
    }
    

    使用AttributedString的方式通常有两种:
     
    方式一:
     
        首先初始化一个NSMutableAttributedString。然后向里面加入文字样式,最后将它赋给控件的AttributedText,该方法适合于文本较少而又须要分段精细控制的情况。
     
     
    NSString *originStr = @"Hello,中秋节。";
     
    //方式一
     
    //创建 NSMutableAttributedString
    NSMutableAttributedString *attributedStr01 = [[NSMutableAttributedString alloc] initWithString: originStr];
     
    //加入属性
     
    //给全部字符设置字体为Zapfino,字体高度为15像素
    [attributedStr01 addAttribute: NSFontAttributeName value: [UIFont fontWithName: @"Zapfino" size: 15]
                                                       range: NSMakeRange(0, originStr.length)];
    //分段控制,最開始4个字符颜色设置成蓝色
    [attributedStr01 addAttribute: NSForegroundColorAttributeName value: [UIColor blueColor] range: NSMakeRange(0, 4)];
    //分段控制。第5个字符開始的3个字符。即第5、6、7字符设置为红色
    [attributedStr01 addAttribute: NSForegroundColorAttributeName value: [UIColor redColor] range: NSMakeRange(4, 3)];
     
    //赋值给显示控件label01的 attributedText
    _label01.attributedText = attributedStr01;
     
     
     
     
    方式二:
     
          首先创建属性字典,初始化各种属性。然后和须要控制的文本一起创建并赋值给控件的AttributedText,该方法适合于须要控制的文本较多总体控制的情况,一般是从文件里读取的大段文本控制。
     
      
    //方式二
     
    //创建属性字典
    NSDictionary *attrDict = @{ NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],
                                NSForegroundColorAttributeName: [UIColor blueColor] };
     
    //创建 NSAttributedString 并赋值
    _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict];
     
     
       
     
           通过对照两个样例能够看出。方式一比較easy处理复杂的格式。可是属性设置比較繁多复杂,而方式二的属性设置比較简单明了,却不善于处理复杂多样的格式控制,可是不善于并不等于不能。能够通过属性字符串分段的方式来达到方式一的效果。例如以下:
     
    //方式二的分段处理
    //第一段
    NSDictionary *attrDict1 = @{ NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],
                                 NSForegroundColorAttributeName: [UIColor blueColor] };
    NSAttributedString *attrStr1 = [[NSAttributedString alloc] initWithString: [originStr substringWithRange: NSMakeRange(0, 4)] attributes: attrDict1];
     
    //第二段
    NSDictionary *attrDict2 = @{ NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],
                                 NSForegroundColorAttributeName: [UIColor redColor] };
    NSAttributedString *attrStr2 = [[NSAttributedString alloc] initWithString: [originStr substringWithRange: NSMakeRange(4, 3)] attributes: attrDict2];
     
    //第三段
    NSDictionary *attrDict3 = @{ NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],
                                 NSForegroundColorAttributeName: [UIColor blackColor] };
    NSAttributedString *attrStr3 = [[NSAttributedString alloc] initWithString: [originStr substringWithRange:
                                                                                NSMakeRange(7, originStr.length - 4 - 3)] attributes: attrDict3];
    //合并
    NSMutableAttributedString *attributedStr03 = [[NSMutableAttributedString alloc] initWithAttributedString: attrStr1];
    [attributedStr03 appendAttributedString: attrStr2];
    [attributedStr03 appendAttributedString: attrStr3];
     
    _label03.attributedText = attributedStr03;
     
     
     
     
    @AttributedString到底能够设置哪些属性,详细来说。有以下21个: 
    // NSFontAttributeName                设置字体属性,默认值:字体:Helvetica(Neue) 字号:12
    // NSForegroundColorAttributeNam      设置字体颜色,取值为 UIColor对象,默认值为黑色
    // NSBackgroundColorAttributeName     设置字体所在区域背景颜色。取值为 UIColor对象,默认值为nil, 透明色
    // NSLigatureAttributeName            设置连体属性,取值为NSNumber 对象(整数)。0 表示没有连体字符,1 表示使用默认的连体字符
    // NSKernAttributeName                设定字符间距,取值为 NSNumber 对象(整数)。正值间距加宽,负值间距变窄
    // NSStrikethroughStyleAttributeName  设置删除线,取值为 NSNumber 对象(整数)
    // NSStrikethroughColorAttributeName  设置删除线颜色。取值为 UIColor 对象,默认值为黑色
    // NSUnderlineStyleAttributeName      设置下划线,取值为 NSNumber 对象(整数)。枚举常量 NSUnderlineStyle中的值,与删除线相似
    // NSUnderlineColorAttributeName      设置下划线颜色,取值为 UIColor 对象,默认值为黑色
    // NSStrokeWidthAttributeName         设置笔画宽度,取值为 NSNumber 对象(整数)。负值填充效果,正值中空效果
    // NSStrokeColorAttributeName         填充部分颜色。不是字体颜色,取值为 UIColor 对象
    // NSShadowAttributeName              设置阴影属性,取值为 NSShadow 对象
    // NSTextEffectAttributeName          设置文本特殊效果,取值为 NSString 对象,眼下仅仅有图版印刷效果可用:
    // NSBaselineOffsetAttributeName      设置基线偏移值,取值为 NSNumber (float),正值上偏。负值下偏
    // NSObliquenessAttributeName         设置字形倾斜度,取值为 NSNumber (float),正值右倾。负值左倾
    // NSExpansionAttributeName           设置文本横向拉伸属性,取值为 NSNumber (float),正值横向拉伸文本,负值横向压缩文本
    // NSWritingDirectionAttributeName    设置文字书写方向,从左向右书写或者从右向左书写
    // NSVerticalGlyphFormAttributeName   设置文字排版方向,取值为 NSNumber 对象(整数),0 表示横排文本,1 表示竖排文本
    // NSLinkAttributeName                设置链接属性,点击后调用浏览器打开指定URL地址
    // NSAttachmentAttributeName          设置文本附件,取值为NSTextAttachment对象,经常使用于文字图片混排
    // NSParagraphStyleAttributeName      设置文本段落排版格式,取值为 NSParagraphStyle 对象 
     
     
    以下就一一举例说明:
     
    1. NSFontAttributeName
     
     
    //NSForegroundColorAttributeName 设置字体颜色,取值为 UIColor,默觉得黑色
     
    NSDictionary *attrDict1 = @{ NSForegroundColorAttributeName: [UIColor redColor] };
    NSDictionary *attrDict2 = @{ NSForegroundColorAttributeName: [UIColor blueColor] };
    NSDictionary *attrDict3 = @{ NSForegroundColorAttributeName: [UIColor orangeColor] };
     
    _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];
    _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];
    _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];
     
     
     
    注意:
     
           NSForegroundColorAttributeName设置的颜色与UILabel的textColor属性设置的颜色在地位上是相等的。谁最后赋值。终于显示的就是谁的颜色。
     
     
     
    2. NSBackgroundColorAttributeName
     
     
    //NSForegroundColorAttributeName 设置字体颜色。取值为 UIColor。默觉得黑色
     
    NSDictionary *attrDict1 = @{ NSForegroundColorAttributeName: [UIColor redColor] };
    NSDictionary *attrDict2 = @{ NSForegroundColorAttributeName: [UIColor blueColor] };
    NSDictionary *attrDict3 = @{ NSForegroundColorAttributeName: [UIColor orangeColor] };
     
    _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];
    _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];
    _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];
     
     
    //NSBackgroundColorAttributeName 设置字体所在区域背景的颜色,取值为UIColor。默认值为nil
     
    NSDictionary *attrDict4 = @{ NSBackgroundColorAttributeName: [UIColor orangeColor] };
    NSDictionary *attrDict5 = @{ NSBackgroundColorAttributeName: [UIColor redColor] };
    NSDictionary *attrDict6 = @{ NSBackgroundColorAttributeName: [UIColor cyanColor] };
     
    _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict4];
    _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict5];
    _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict6];
     
     
     
     
           细致观察会发现个问题。我并没有关闭 NSForegroundColorAttributeName 属性,可是在执行结果中,全部字体的颜色都变成了默认色——黑色。这说明 NSForegroundColorAttributeName 和 NSBackgroundColorAttributeName 的低位是相等的,跟前面介绍的 textColor 一样。哪个属性最后一次赋值。就会冲掉前面的效果,若是我们把属性代码顺序交换一下
     
     
    //NSBackgroundColorAttributeName 设置字体所在区域背景的颜色,取值为UIColor。默认值为nil
     
    NSDictionary *attrDict4 = @{ NSBackgroundColorAttributeName: [UIColor orangeColor] };
    NSDictionary *attrDict5 = @{ NSBackgroundColorAttributeName: [UIColor redColor] };
    NSDictionary *attrDict6 = @{ NSBackgroundColorAttributeName: [UIColor cyanColor] };
     
    _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict4];
    _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict5];
    _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict6];
     
    //NSForegroundColorAttributeName 设置字体颜色,取值为 UIColor,默觉得黑色
     
    NSDictionary *attrDict1 = @{ NSForegroundColorAttributeName: [UIColor redColor] };
    NSDictionary *attrDict2 = @{ NSForegroundColorAttributeName: [UIColor blueColor] };
    NSDictionary *attrDict3 = @{ NSForegroundColorAttributeName: [UIColor orangeColor] };
     
    _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];
    _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];
    _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];
     
     
     
     
    可是textColor属性能够与 NSBackgroundColorAttributeName 属性叠加
     
     
    _label01.textColor = [UIColor greenColor];
    _label02.textColor = [UIColor yellowColor];
    _label03.textColor = [UIColor blueColor];
     
    //NSForegroundColorAttributeName 设置字体颜色,取值为 UIColor,默觉得黑色
     
    NSDictionary *attrDict1 = @{ NSForegroundColorAttributeName: [UIColor redColor] };
    NSDictionary *attrDict2 = @{ NSForegroundColorAttributeName: [UIColor blueColor] };
    NSDictionary *attrDict3 = @{ NSForegroundColorAttributeName: [UIColor orangeColor] };
     
    _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];
    _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];
    _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];
     
     
    //NSBackgroundColorAttributeName 设置字体所在区域背景的颜色,取值为UIColor。默认值为nil
     
    NSDictionary *attrDict4 = @{ NSBackgroundColorAttributeName: [UIColor orangeColor] };
    NSDictionary *attrDict5 = @{ NSBackgroundColorAttributeName: [UIColor redColor] };
    NSDictionary *attrDict6 = @{ NSBackgroundColorAttributeName: [UIColor cyanColor] };
     
    _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict4];
    _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict5];
    _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict6];
     
     
     
           尽管 textColor 在 NSFontAttributeName 之前赋值,可是因为 NSFontAttributeName 的属性效果被NSBackgroundColorAttributeName 属性冲掉了。所以终于显示了 textColor 的颜色。

    3. NSLigatureAttributeName //NSLigatureAttributeName 设置连体属性,取值为NSNumber 对象(整数)。0 表示没有连体字符。1 表示使用默认的连体字符, // 2 表示使用全部连体符号,默认值为 1(iOS 不支持 2) NSString *ligatureStr = @"flush"; NSDictionary *attrDict1 = @{ NSLigatureAttributeName: [NSNumber numberWithInt: 0], NSFontAttributeName: [UIFont fontWithName: @"futura" size: 30] }; _label01.attributedText = [[NSAttributedString alloc] initWithString: ligatureStr attributes: attrDict1]; NSDictionary *attrDict2 = @{ NSLigatureAttributeName: @(1), NSFontAttributeName: [UIFont fontWithName: @"futura" size: 30] }; _label02.attributedText = [[NSAttributedString alloc] initWithString: ligatureStr attributes: attrDict2]; 因为要展示连体字符。所以将前面使用的带有中文的字符串换成 flush NSLigatureAttributeName的取值为NSNumber对象,所以不能直接将一个整数值赋给它,创建 NSNumber 对象的方法有非常多,或者能够简写成 @(int) 注意观察字母f和l之间的变化。 感觉连写就是一个艺术字功能,当字符f和l组合使用组合符号(所谓的字形(glyph))绘制时,看起来确实更加美观。可是并不是全部的字符之间都有组合符号。其实,仅仅有某些字体中得某些字符的组合(如字符f和l。字符f和i等)才具有美观的组合符号。 4. NSKernAttributeName //NSKernAttributeName 设定字符间距,取值为 NSNumber 对象(整数),正值间距加宽。负值间距变窄 NSDictionary *attrDict1 = @{ NSKernAttributeName: @(-3), NSFontAttributeName: [UIFont systemFontOfSize: 20] }; _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1]; NSDictionary *attrDict2 = @{ NSKernAttributeName: @(0), NSFontAttributeName: [UIFont systemFontOfSize: 20] }; _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2]; NSDictionary *attrDict3 = @{ NSKernAttributeName: @(10), NSFontAttributeName: [UIFont systemFontOfSize: 20] }; _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3]; 5. NSStrikethroughStyleAttributeName //NSStrikethroughStyleAttributeName 设置删除线。取值为 NSNumber 对象(整数)。枚举常量 NSUnderlineStyle中的值 // NSUnderlineStyleNone 不设置删除线 // NSUnderlineStyleSingle 设置删除线为细单实线 // NSUnderlineStyleThick 设置删除线为粗单实线 // NSUnderlineStyleDouble 设置删除线为细双实线 NSDictionary *attrDict1 = @{ NSStrikethroughStyleAttributeName: @(NSUnderlineStyleSingle), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1]; NSDictionary *attrDict2 = @{ NSStrikethroughStyleAttributeName: @(NSUnderlineStyleThick), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2]; NSDictionary *attrDict3 = @{ NSStrikethroughStyleAttributeName: @(NSUnderlineStyleDouble), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3]; 注意: 尽管使用了枚举常量,可是枚举常量的本质仍为整数。所以相同必须先转化为 NSNumber 才干使用 删除线和下划线使用相同的枚举常量作为其属性值 眼下iOS中仅仅有上面列出的4中效果,尽管我们能够在头文件里发现其它很多其它的取值。可是使用后没有不论什么效果 能够看出,中文和英文删除线的位置有所不同 另外。删除线属性取值除了上面的4种外,其实还能够取其它整数值,有兴趣的能够自行试验,取值为 0 - 7时,效果为单实线,随着值得添加,单实线逐渐变粗。取值为 9 - 15时。效果为双实线。取值越大,双实线越粗。 NSDictionary *attrDict1 = @{ NSStrikethroughStyleAttributeName: @(1), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1]; NSDictionary *attrDict2 = @{ NSStrikethroughStyleAttributeName: @(3), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2]; NSDictionary *attrDict3 = @{ NSStrikethroughStyleAttributeName: @(7), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3]; 6. NSStrikethroughColorAttributeName //NSStrikethroughColorAttributeName 设置删除线颜色,取值为 UIColor 对象,默认值为黑色 NSDictionary *attrDict1 = @{ NSStrikethroughColorAttributeName: [UIColor blueColor], NSStrikethroughStyleAttributeName: @(1), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1]; NSDictionary *attrDict2 = @{ NSStrikethroughColorAttributeName: [UIColor orangeColor], NSStrikethroughStyleAttributeName: @(3), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2]; NSDictionary *attrDict3 = @{ NSStrikethroughColorAttributeName: [UIColor greenColor], NSStrikethroughStyleAttributeName: @(7), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3]; 7. NSUnderlineStyleAttributeName 下划线除了线条位置和删除线不同外,其它的都能够全然參照删除线设置。 //NSUnderlineStyleAttributeName 设置下划线,取值为 NSNumber 对象(整数)。枚举常量 NSUnderlineStyle中的值,与删除线相似 NSDictionary *attrDict1 = @{ NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1]; NSDictionary *attrDict2 = @{ NSUnderlineStyleAttributeName: @(NSUnderlineStyleThick), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2]; NSDictionary *attrDict3 = @{ NSUnderlineStyleAttributeName: @(NSUnderlineStyleDouble), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3]; 8. NSUnderlineColorAttributeName 能够全然參照下划线颜色设置 //NSUnderlineColorAttributeName 设置下划线颜色,取值为 UIColor 对象。默认值为黑色 NSDictionary *attrDict1 = @{ NSUnderlineColorAttributeName: [UIColor blueColor], NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1]; NSDictionary *attrDict2 = @{ NSUnderlineColorAttributeName: [UIColor orangeColor], NSUnderlineStyleAttributeName: @(NSUnderlineStyleThick), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2]; NSDictionary *attrDict3 = @{ NSUnderlineColorAttributeName: [UIColor greenColor], NSUnderlineStyleAttributeName: @(NSUnderlineStyleDouble), NSFontAttributeName: [UIFont systemFontOfSize:20] }; _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3]; 9. NSStrokeWidthAttributeName //NSStrokeWidthAttributeName 设置笔画宽度,取值为 NSNumber 对象(整数)。负值填充效果,正值中空效果 NSDictionary *attrDict1 = @{ NSStrokeWidthAttributeName: @(-3), NSFontAttributeName: [UIFont systemFontOfSize:30] }; _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1]; NSDictionary *attrDict2 = @{ NSStrokeWidthAttributeName: @(0), NSFontAttributeName: [UIFont systemFontOfSize:30] }; _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2]; NSDictionary *attrDict3 = @{ NSStrokeWidthAttributeName: @(3), NSFontAttributeName: [UIFont systemFontOfSize:30] }; _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3]; 10. NSStrokeColorAttributeName //NSStrokeColorAttributeName 填充部分颜色,不是字体颜色,取值为 UIColor 对象 NSDictionary *attrDict1 = @{ NSStrokeWidthAttributeName: @(-3), NSStrokeColorAttributeName: [UIColor orangeColor], NSFontAttributeName: [UIFont systemFontOfSize:30] }; _label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1]; NSDictionary *attrDict2 = @{ NSStrokeWidthAttributeName: @(0), NSStrokeColorAttributeName: [UIColor blueColor], NSFontAttributeName: [UIFont systemFontOfSize:30] }; _label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2]; NSDictionary *attrDict3 = @{ NSStrokeWidthAttributeName: @(3), NSStrokeColorAttributeName: [UIColor greenColor], NSFontAttributeName: [UIFont systemFontOfSize:30] }; _label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];




    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    PHP PSR 标准规范
    PHP线程安全与非线程安全的区别(NTS/TS)选择?
    goto 语法在 PHP 中的使用
    linux命令post请求发送json串
    接口日志表sql【我】
    sentinel最简单接入【我】
    Jps命令—使用详解
    MyBatis-Plus Wrapper条件构造器查询大全
    IDEA项目启动不起来也不打印日志【我】
    linux下查看nginx配置文件地址
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4842748.html
Copyright © 2011-2022 走看看