ios 修改UILabel部分内容颜色、设置行间距

/*
这个是设置label其中一个部分颜色改动 调用此方法
label               需要换色的label  必须值
newcolorcontent     需要换色的内容    必须值
primarycolorcontent 不需要换色的内容   可以填空 非必须值
color               需要换色部分换成什么颜色   必须值
leftandright        变色内容是放在不需要换色内容的左边还是右边 填L是左 R是右边
 lineSpace          行距
*/
+(void)setLabelColorAndLineSpace:(UILabel *)label withNewColorContent:(NSString *)newcolorcontent withPrimaryColorContent:(NSString *)primarycolorcontent withNewColor:(UIColor *)color withLeftStillRight:(NSString *)leftandright LineSpace:(CGFloat)lineSpace{
  NSString *string = @"";
   if ([leftandright isEqualToString:@"L"]) {//被改变颜色的部分是放在原色的左边还是右边的判断
       string = [NSString stringWithFormat:@"%@%@",newcolorcontent,primarycolorcontent];
   }else{
       string = [NSString stringWithFormat:@"%@%@",primarycolorcontent,newcolorcontent];
   }
   NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
   paragraphStyle.lineSpacing = lineSpace;  //设置行间距
   paragraphStyle.lineBreakMode = label.lineBreakMode;
   paragraphStyle.alignment = label.textAlignment;
   
   NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:string];
   
   [text addAttribute:NSForegroundColorAttributeName value:color range:[string rangeOfString:newcolorcontent]];//改变部分内容颜色
    [text addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [string length])];//改变所有内容的高度
   
   label.attributedText =text ;
}


 /*
这个只是修改label其中一个部分颜色改动 调用此方法
label               需要换色的label  必须值
newcolorcontent     需要换色的内容    必须值
 primarycolorcontent 不需要换色的内容   可以填空 非必须值
color               需要换色部分换成什么颜色   必须值
 leftandright        变色内容是放在不需要换色内容的左边还是右边 填L是左 R是右边
*/
+(void)setLabelColor:(UILabel *)label withNewColorContent:    (NSString *)newcolorcontent withPrimaryColorContent:(NSString *)primarycolorcontent withNewColor:(UIColor *)color withLeftStillRight:(NSString *)leftandright{


    NSString *string = @"";
    if ([leftandright isEqualToString:@"L"]) {
        string = [NSString stringWithFormat:@"%@%@",newcolorcontent,primarycolorcontent];
    }else{
        string = [NSString stringWithFormat:@"%@%@",primarycolorcontent,newcolorcontent];
    }
    

    NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:string];

    [text addAttribute:NSForegroundColorAttributeName value:color range:[string rangeOfString:newcolorcontent]];

    label.attributedText =text ;

}
/*
这个是设置label其中两个部分颜色改动 调用此方法
label               需要换色的label  必须值
newcolorcontentone     第一部分需要换色的内容    必须值
newcolorcontenttwo     第二部分需要换色的内容    必须值
primarycolorcontentone 第一部分不需要换色的内容   可以填空 非必须值
primarycolorcontenttwo 第二部分不需要换色的内容   可以填空 非必须值
onecolor               第一部分需要换色部分换成什么颜色   必须值
twocolor               第二部分需要换色部分换成什么颜色   必须值
leftandright        变色内容是放在不需要换色内容的左边还是右边 填L是左 R是右边
*/
+(void)setLabelTwoColor:(UILabel *)label withNewColorContentOne:(NSString *)newcolorcontentone withNewColorContentTwo:(NSString *)newcolorcontenttwo withPrimaryColorContentOne:(NSString *)primarycolorcontentone withPrimaryColorContentTwo:(NSString *)primarycolorcontenttwo withOneColor:(UIColor *)onecolor withTwoColor:(UIColor *)twocolor{



    NSString *string = [NSString stringWithFormat:@"%@",newcolorcontentone];

    if (newcolorcontenttwo.length != 0) {
    
        string = [NSString stringWithFormat:@"%@%@%@%@",primarycolorcontentone,newcolorcontentone,primarycolorcontenttwo,newcolorcontenttwo ];
    
    }
    NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:string];

    [text addAttribute:NSForegroundColorAttributeName value:onecolor range:[string rangeOfString:newcolorcontentone]];

    if (newcolorcontenttwo.length != 0) {
    
        [text addAttribute:NSForegroundColorAttributeName value:twocolor range:[string rangeOfString:newcolorcontenttwo]];
    
    }

    label.attributedText =text ;
}

你可能感兴趣的:(ios 修改UILabel部分内容颜色、设置行间距)