【代码】OC改变字符串中的某个特定字符的颜色

2022-11-17 13:20:31  阅读 2715 次 评论 0 条

直接上代码:

/**
 *  切换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)];

效果:

IMG_0002.jpg


微信扫码查看本文
本文地址:https://www.yangguangdream.com/?id=2220
版权声明:本文为原创文章,版权归 编辑君 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?