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:

Geben Sie hier die Bildbeschreibung ein

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