Objective-C Language
NSAttributedString
Suche…
Erstellen einer Zeichenfolge mit benutzerdefiniertem Kerning (Buchstabenabstand)
NSAttributedString
(und seinem veränderlichen Geschwister NSMutableAttributedString
) können Sie Strings erstellen, die in ihrem Erscheinungsbild für den Benutzer komplex sind.
Eine gebräuchliche Anwendung besteht darin, eine Zeichenfolge anzuzeigen und benutzerdefinierte Kern- / Buchstabenabstände hinzuzufügen.
Dies würde folgendermaßen erreicht werden (wobei label ein UILabel
), was für das Wort "Kerning" ein anderes Kerning ergibt.
NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:@"Apply kerning"];
[attributedString addAttribute:NSKernAttributeName value:@5 range:NSMakeRange(6, 7)];
[label setAttributedText:attributedString];
Erstellen Sie eine Zeichenfolge mit durchgestrichenem Text
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
value:@2
range:NSMakeRange(0, [attributeString length])];
Verwenden der Aufzählung über Attribute in einer Zeichenfolge und unterstrichenen Teil der Zeichenfolge
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
Ausgabe:
So erstellen Sie eine dreifarbige Zeichenfolge.
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)];
Bereich: Anfang bis Ende Zeichenfolge
Hier haben wir den ersten zweiten Drittel-String, also haben wir zuerst den Bereich (0,5) gesetzt, so dass er vom ersten bis zum fünften Zeichen in grüner Textfarbe angezeigt wird.
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow