Objective-C Language
NSAttributedString
Sök…
Skapa en sträng som har anpassad kerning (bokstavsavstånd) redigeringsdel
NSAttributedString
(och dess muterbara syskon NSMutableAttributedString
) låter dig skapa strängar som är komplexa i sitt utseende för användaren.
En vanlig applikation är att använda den här för att visa en sträng och lägga till anpassad kerning / bokstavsavstånd.
Detta skulle uppnås enligt följande (där etiketten är en UILabel
), vilket ger en annan kerning för ordet "kerning"
NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:@"Apply kerning"];
[attributedString addAttribute:NSKernAttributeName value:@5 range:NSMakeRange(6, 7)];
[label setAttributedText:attributedString];
Skapa en sträng med text genomslagen
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
value:@2
range:NSMakeRange(0, [attributeString length])];
Använda enumerera över attribut i en sträng och understryka en del av strängen
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
Produktion:
Hur du skapar en tilldelad sträng med tre färger.
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)];
Område: börja till slutsträng
Här har vi den första sekundära strängen så till en början har vi ställt in intervallet (0,5) så från att börja första tecken till femte tecken kommer det att visas i grön textfärg.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow