Objective-C Language
NSAttributedString
Поиск…
Создание строки, которая имеет пользовательский кернинг (межстрочный интервал) editshare
NSAttributedString
(и его изменяемый sibling NSMutableAttributedString
) позволяет создавать строки, которые сложны по своему внешнему виду для пользователя.
Обычным приложением является использование этого для отображения строки и добавления пользовательского кернинга / межстрочного интервала.
Это будет достигнуто следующим образом (где label - UILabel
), давая другой кернинг для слова «кернинг»,
NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:@"Apply kerning"];
[attributedString addAttribute:NSKernAttributeName value:@5 range:NSMakeRange(6, 7)];
[label setAttributedText:attributedString];
Создайте строку с текстом, пробитым
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
value:@2
range:NSMakeRange(0, [attributeString length])];
Использование перечисления по атрибутам в строке и подчеркивание части строки
NSMutableDictionary *attributesDictionary = [NSMutableDictionary dictionary];
[attributesDictionary setObject:[UIFont systemFontOfSize:14] forKey:NSFontAttributeName];
//[attributesDictionary setObject:[UIColor redColor] forKey:NSForegroundColorAttributeName];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:@"Google www.google.com link" attributes:attributesDictionary];
[attributedString enumerateAttribute:(NSString *) NSFontAttributeName
inRange:NSMakeRange(0, [attributedString length])
options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
usingBlock:^(id value, NSRange range, BOOL *stop) {
NSLog(@"Attribute: %@, %@", value, NSStringFromRange(range));
}];
NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:@"www.google.com "];
[attributedString addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithInt:NSUnderlineStyleDouble]
range:NSMakeRange(7, attributedStr.length)];
[attributedString addAttribute:NSForegroundColorAttributeName
value:[UIColor blueColor]
range:NSMakeRange(6,attributedStr.length)];
_attriLbl.attributedText = attributedString;//_attriLbl (of type UILabel) added in storyboard
Выход:
Как вы создаете строку с тремя цветами.
NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"firstsecondthird"];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,5)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(5,6)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(11,5)];
Диапазон: начало строки
Здесь у нас есть firstsecondthird строка, поэтому вначале мы установили диапазон (0,5), поэтому от начала первого символа до пятого символа он будет отображаться в зеленом цвете текста.
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow