NIAttributedLabel settextcolor не работает
Я использую NIAttributedLabel
для отображения ссылок на текст.
NIAttributedLabel *label;
label = [[NIAttributedLabel alloc] initWithFrame:rect];
label.delegate = self;
label.font = [UIFont fontWithName:@"Helvetica" size:MAIN_FONT_SIZE];
label.textAlignment = UITextAlignmentLeft;
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
label.backgroundColor = [UIColor clearColor];
label.highlightedTextColor = [UIColor whiteColor];
label.text = strEditedText;
label.textColor = [UIColor blackColor];
[label setTextColor:[UIColor blueColor]
range:[strEditedText rangeOfString:stringPh]];
Но последняя строка не работает правильно, хотя stringPh находится в strEditedText. Весь текст идет синим цветом.
2 ответа
Решение
Я создал пример, который вы можете скачать здесь, и обнаружил, что он работает отлично.
С:
NSString * strEditedText= @"I'm text";
NSString *stringPh = @"I'm";
симулятор правильно подсвечивает правую часть текста:
Вы абсолютно уверены, что ваша строка stringPh
фактическая подстрока strEditedText
?
Вот рабочий код для меня
NSString * strEditedText= @"Please contact abc at 800.493.0016, option #3 for further assistance.";
NSString *stringPh = @"800.493.0016";
NIAttributedLabel *label;
label = [[NIAttributedLabel alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
label.delegate = self;
label.font = [UIFont fontWithName:@"Helvetica" size:MAIN_FONT_SIZE];
label.textAlignment = UITextAlignmentLeft;
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
label.backgroundColor = [UIColor clearColor];
label.highlightedTextColor = [UIColor whiteColor];
label.text = strEditedText;
label.textColor = [UIColor blackColor];
[label setTextColor:[UIColor blueColor]
range:[strEditedText rangeOfString:stringPh]];
[self.view addSubview:label];