你的位置:首页 > 操作系统

[操作系统]ios中label的文字多种颜色显示

一 、在初始化方法中把所有需要高亮关键字的label加入到labels数组中,并且把这些label原来字体的颜色加入到 labelTextColors中 ,代码如下

 self.labels = [NSArray arrayWithObjects:self.textLabel,self.detailTextLabel, nil];

  self.labelTextColors = [NSArray arrayWithObjects:kColor_Black,kColor_LightGray, nil];

二 、在layoutSubviews中加上这段代码

for (int i = 0; i < self.labels.count; i++) {

        UILabel * label = self.labels[i];

      //1.取出label原来字体的颜色

        UIColor *  originalColor = self.labelTextColors[i];

        //2.恢复原来颜色

        NSMutableAttributedString * originalMat = label.attributedText.mutableCopy;

        [originalMat setAttributes:@{NSForegroundColorAttributeName:originalColor}

                             range:[label.text rangeOfString:label.text]];

        

        label.attributedText = originalMat;

        

        //3.关键字高亮

        NSMutableAttributedString * mat = label.attributedText.mutableCopy;

        [mat setAttributes:@{NSForegroundColorAttributeName:[UIColor blueColor]}

                     range:[label.text rangeOfString:self.keyWords]];//keyWords就是需要高亮的关键字

        

        label.attributedText = mat;

    }