2015-04-30 2 views
0

I, имеющий текст «Бог велик, и великий бог абсолют !, GOD благословить меня.» Я опубликовал этот текст в tableviewcell, и я использовал NSMutableAttributedString.Подчеркнула нижний и верхний регистр текста с использованием по NSMutableAttributedString

Пример 1. БОГ 2. Бог 3. Бог

Когда я поиск текста «бога» он выделяет текст, как «бог», но мне нужно выделить текст, как Бог, Бог и Бог все, что он должен быть выделены.

код

NSString *initial = [NSString stringWithFormat:@"%@ %d - %d : %@",[appDelegate.arrChapterName objectAtIndex:nBookNo-1],[[arrVerses objectAtIndex:1] integerValue],[[arrVerses objectAtIndex:2] integerValue],[arrVerses objectAtIndex:3]]; 

     NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithString:initial]; 
     NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"(%@)",searchBar.text] options:kNilOptions error:nil]; 

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

     [regex enumerateMatchesInString:initial options:kNilOptions range:range usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) { 

      NSRange subStringRange = [result rangeAtIndex:1]; 
      [mutableAttributedString addAttribute:NSBackgroundColorAttributeName value:[UIColor lightGrayColor] range:subStringRange]; 
     }]; 

      cell.textLabel.attributedText = mutableAttributedString; 
+0

Поместите свой код для поиска бога. –

+0

Вы должны использовать регулярное выражение. Посмотрите на [Сравнение строк] (https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html#//apple_ref/doc/uid/TP40001795-215868) –

+0

ya, он отлично работает ... спасибо – ParameswarJya

ответ

0

Рекомендуется заменить выражение регулярных выражений с помощью следующего кода:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"(%@)",searchBar.text] 
       options:NSRegularExpressionCaseInsensitive error:nil]; 

Для получения более подробной информации и примеров см here.

+0

ya он работает отлично ..... спасибо – ParameswarJya

+0

Добро пожаловать. Подумайте о принятии ответа, если он решает вашу проблему. :-) –

0

Здесь вы идете,

NSString *initial = [NSString stringWithFormat:@"%@ %d - %d : %@",[appDelegate.arrChapterName objectAtIndex:nBookNo-1],[[arrVerses objectAtIndex:1] integerValue],[[arrVerses objectAtIndex:2] integerValue],[arrVerses objectAtIndex:3]]; 

NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithString:initial]; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"(%@)",searchBar.text] options:NSRegularExpressionCaseInsensitive error:nil]; 

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

[regex enumerateMatchesInString:initial options:kNilOptions range:range usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) { 

    NSRange subStringRange = [result rangeAtIndex:1]; 
    [mutableAttributedString addAttribute:NSBackgroundColorAttributeName value:[UIFont boldSystemFontOfSize:12.0] range:subStringRange]; 
}]; 

cell.textLabel.attributedText = mutableAttributedString; 
Смежные вопросы