ios 修改UILabel部分内容颜色、设置行间距
2020-03-27 本文已影响0人
帝步凡
/*
这个是设置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 ;
}