Настройка UILabel с несколькими цветами шрифта в точке рисования - PullRequest
0 голосов
/ 21 октября 2019

Как установить цвет нескольких шрифтов в точке рисования UIlabel.

Я пытался использовать приведенный ниже код для изменения атрибута шрифта, но я не знаю, как установить NSMutableAttributedString для этого, поскольку он принимает только NSDictionary

[self.textColor setFill];
[self.text drawAtPoint:rect2.origin withAttributes:attrName];

Мы используем это для установки атрибута

NSMutableAttributedString *attrsString =  
[[NSMutableAttributedString alloc] 
initWithAttributedString:"String1/String2"];

// search for word occurrence
NSRange prange = [lbl.text rangeOfString:@"String1"];
NSRange lrange = [lbl.text rangeOfString:@"String2"];

if (prange.location != NSNotFound) {
     [attrsString addAttributes:attributeGreen range:prange];
     [attrsString addAttributes:attributeRed range:lrange];
}
lbl.attributedText = attrsString;

Первоначально мы используем это в подклассе UILabel - этот подкласс используется для изменения размера текста.

[self.textColor setFill];
[self.text drawAtPoint:rect2.origin withFont:tmpfont];

Iожидается, что строка String1 выделена зеленым шрифтом, а строка String 2 красным шрифтом

1 Ответ

0 голосов
/ 21 октября 2019

Добавить атрибут шрифта с размером шрифта.

NSString *string = @"String1/String2";

NSMutableAttributedString *attrsString =  
[[NSMutableAttributedString alloc] 
initWithAttributedString:@"String1/String2"];

// search for word occurrence
NSRange prange = [lbl.text rangeOfString:@"String1"];
NSRange lrange = [lbl.text rangeOfString:@"String2"];

//Setting font 
[attrString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:NSMakeRange(0, string.length)];

if (prange.location != NSNotFound) {
 [attrsString addAttribute: NSForegroundColorAttributeName value: [UIColor greenColor] range:prange];
}
if (lrange.location != NSNotFound) {
 [attrsString addAttribute: NSForegroundColorAttributeName value: [UIColor redColor] range:lrange];
}
lbl.attributedText = attrsString;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...