直接上代码:
/** * 切换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)];
效果:
微信扫码查看本文
发表评论