一 、在初始化方法中把所有需要高亮關鍵字的label加入到labels數組中,並且把這些label原來字體的顏色加入到 labelTextColors中 ,代碼如下 self.labels = [NSArray arrayWithObjects:self.textLabel,self.detailT
一 、在初始化方法中把所有需要高亮關鍵字的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;
}