如何更改ios中特定单词的颜色

时间:2014-09-18 11:02:48

标签: ios objective-c uitableview

我搜索任何特定的词,如"上帝"。我想改变那个特定的文字颜色应该改变不同的颜色。我尝试在谷歌搜索,但我发现特定的字词颜色从单词Link的开头到结尾的特定索引值发生了变化,这就是我的问题无法解决的原因。

请帮助我并更新我的代码,以便更改特定的文字文字颜色,即您在图片中看到的框中的字词。

由于

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:UYLCellIdentifier forIndexPath:indexPath];
    [self configureCell:cell forRowAtIndexPath:indexPath];
     return cell;
}

- (void)configureCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([cell isKindOfClass:[UYLTextCellSearch class]])
    {
         UYLTextCellSearch *textCell = (UYLTextCellSearch *)cell;

         DataBase *DBContentDetail = [_sourceData objectAtIndex:indexPath.row];

         textCell.lineLabel.text = [NSString stringWithFormat:@"%@",DBContentDetail.dbtext];
        [textCell.lineLabel sizeToFit];
    }
}

How to change the color of a specific word in ios

2 个答案:

答案 0 :(得分:10)

NSString *text = @"In the begining God created heaven and earth. God is great.";

NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithString:text];

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(God)" options:kNilOptions error:nil]; // Matches 'God' case SENSITIVE

NSRange range = NSMakeRange(0 ,text.length);

// Change all words that are equal to 'God' to red color in the attributed string
[regex enumerateMatchesInString:text options:kNilOptions range:range usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {

    NSRange subStringRange = [result rangeAtIndex:0];
    [mutableAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:subStringRange];
}];

textCell.lineLabel.attributedText = mutableAttributedString;

更多关于NSAttributedString

答案 1 :(得分:0)

是的,您可以使用iOS 7中引入的“Text Kit framework”更改特定单词的颜色。

注意语句“在模型 - 视图 - 控制器范例中,布局管理器是控制器.NSTextStorage是NSMutableAttributedString的子类,它提供了模型的一部分,包含一些带有字体等属性的文本字符,风格,颜色“记录在这里:(https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/CustomTextProcessing/CustomTextProcessing.html

或者您可以查看WWDC 2013的此视频(https://developer.apple.com/videos/wwdc/2013/#210)中给出的示例。