直接上代码:
/**
* 切换label关键字颜色
*
* @param label 传入文本框
* @param color 颜色值
*/
- (void)changeLabel:(UILabel *)label withTextColor:(UIColor *)color {
NSString *labelStr = label.text; //初始化string为传入label.text的值
NSCharacterSet *nonDigits = [[NSCharacterSet decimalDigitCharacterSet]invertedSet];//创建一个字符串过滤参数,decimalDigitCharacterSet为过滤小数,过滤某个关键词,只需改变 decimalDigitCharacterSet类型 在将此方法增加一个 NSString参数即可
NSInteger remainSeconde = [[labelStr stringByTrimmingCharactersInSet:nonDigits]intValue];//获取过滤出来的数值
NSString *stringRange = [NSString stringWithFormat:@"%ld",(long)remainSeconde];//将过滤出来的Integer的值转换成String
NSRange range = [labelStr rangeOfString:stringRange];//获取过滤出来的数值的位置
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc]initWithString:label.text];//创建一个带属性的string
[attrStr addAttribute:NSForegroundColorAttributeName value:color range:range];//给带属性的string添加属性,attrubute:添加的属性类型(颜色\文字大小\字体等等),value:改变成的属性参数,range:更改的位置
label.attributedText = attrStr;//将 attstr 赋值给label带属性的文本框属性
/**
以下为NSCharacterSet的过滤类型:
controlCharacterSet; //控制符
whitespaceCharacterSet; //空格
whitespaceAndNewlineCharacterSet; //空格和换行符
decimalDigitCharacterSet; //小数
letterCharacterSet; //文字
lowercaseLetterCharacterSet; //小写字母
uppercaseLetterCharacterSet; //大写字母
nonBaseCharacterSet; //非基础
alphanumericCharacterSet; //字母数字
decomposableCharacterSet; //可分解
illegalCharacterSet; //非法
punctuationCharacterSet; //标点
capitalizedLetterCharacterSet; //大写
symbolCharacterSet; //符号
newlineCharacterSet; //换行符
*/
}调用(根据自己实际情况):
NSString *hb_text=[NSString stringWithFormat:@"来电或点击报名立减 %@ 元优惠",[hongbaoDict[@"price"] stringValue]]; UILabel *lbl_bmtext=[[UILabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH*0.1,0,SCREEN_WIDTH,40)];//10%左边距 lbl_bmtext.text=hb_text; lbl_bmtext.font=[UIFont boldSystemFontOfSize:13]; lbl_bmtext.textColor=[UIColor whiteColor]; [vw_picbm addSubview:lbl_bmtext];//报名文本 [self changeLabel:lbl_bmtext withTextColor:UIColorFromRGB(0xFFFFE031)];
效果:


微信扫码查看本文
发表评论