Objective-C Language
NSAttributedString
Zoeken…
Een tekenreeks maken met aangepaste bewerkingsshare voor kerning (letterafstand)
NSAttributedString
(en de veranderlijke broer NSMutableAttributedString
zus NSMutableAttributedString
) kunt u tekenreeksen maken die complex zijn voor de gebruiker.
Een veel voorkomende toepassing is om dit te gebruiken om een string weer te geven en aangepaste kerning / letterafstand toe te voegen.
Dit zou als volgt worden bereikt (waarbij label een UILabel
), waardoor een andere kerning wordt gegeven voor het woord "kerning"
NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:@"Apply kerning"];
[attributedString addAttribute:NSKernAttributeName value:@5 range:NSMakeRange(6, 7)];
[label setAttributedText:attributedString];
Maak een string met doorgestreepte tekst
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
value:@2
range:NSMakeRange(0, [attributeString length])];
Opsomming van attributen in een string gebruiken en een deel van de string onderstrepen
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
Output:
Hoe u een driekleurige tekenreeks maakt.
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)];
Bereik: start tot einde string
Hier hebben we de eerste tweede derde reeks, dus eerst hebben we bereik (0,5) ingesteld, dus vanaf het begin van het eerste teken tot het vijfde teken wordt het in groene tekstkleur weergegeven.
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow