iOS 开发~设置label上文字显示不同大小、颜色、字体类型

设置前效果如下:

iOS 开发~设置label上文字显示不同大小、颜色、字体类型_第1张图片

- (void)AttributedString:(NSString *)string
{
    NSArray *arr = [string componentsSeparatedByString:@"."];
    
    // 创建Attributed
    NSMutableAttributedString *noteStr = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@.%@元",arr.firstObject,arr.lastObject]];
    
    //第一部分修改
    // 需要改变的第一个文字的位置
    NSUInteger firstLoc = 0;
    // 需要改变的最后一个文字的位置
    NSUInteger secondLoc = [[noteStr string] rangeOfString:@"."].location;
    // 需要改变的区间
    NSRange range = NSMakeRange(firstLoc, secondLoc - firstLoc);
    // 改变颜色
    [noteStr addAttribute:NSForegroundColorAttributeName value:JKCOLORRED range:range];
    // 改变字体大小及类型
    [noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:25*JKFONTSIZE] range:range];
    
    
    //第二部分修改
    // 需要改变的第一个文字的位置
    NSUInteger firstLoc1 = [[noteStr string] rangeOfString:@"."].location + 1;
    // 需要改变的最后一个文字的位置
    NSUInteger secondLoc1 = [[noteStr string] rangeOfString:@"元"].location;
    // 需要改变的区间
    NSRange range1 = NSMakeRange(firstLoc1, secondLoc1 - firstLoc1);
    // 改变颜色
    [noteStr addAttribute:NSForegroundColorAttributeName value:JKCOLORRED range:range1];
    // 改变字体大小及类型
    [noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16*JKFONTSIZE] range:range1];
    
    
    //第三部分修改
    // 需要改变的第一个文字的位置
    NSUInteger firstLoc2 = [[noteStr string] length]-1;
    // 需要改变的最后一个文字的位置
    NSUInteger secondLoc2 = 1;
    // 需要改变的区间
    NSRange range2 = NSMakeRange(firstLoc2, secondLoc2);
    // 改变颜色
    [noteStr addAttribute:NSForegroundColorAttributeName value:JKCOLORRED range:range2];
    // 改变字体大小及类型
    [noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:18*JKFONTSIZE] range:range2];
    
    
    // 为label添加Attributed
    [self.titleLab2 setAttributedText:noteStr];
    
    
}


加入以下代码加以改变:


君凯商联网-iOS-字唐名僧


你可能感兴趣的:(OC篇)