Zeichenkettenfarbe mit NSAttributedString ändern?
Ich habe einen regler für eine Umfrage, die die folgenden Zeichenfolgen auf der Grundlage der Werte des Schiebereglers: "Sehr Schlecht, Schlecht, Okay, Gut, Sehr Gut".
Hier ist der code für den regler:
- (IBAction) sliderValueChanged:(UISlider *)sender {
scanLabel.text = [NSString stringWithFormat:@" %.f", [sender value]];
NSArray *texts=[NSArray arrayWithObjects:@"Very Bad", @"Bad", @"Okay", @"Good", @"Very Good", @"Very Good", nil];
NSInteger sliderValue=[sender value]; //make the slider value in given range integer one.
self.scanLabel.text=[texts objectAtIndex:sliderValue];
}
Ich soll "Sehr Schlecht" in rot, "Schlecht" orange "Okay", gelb zu werden, "Gut" und "Sehr Gut" grün " sein.
Ich nicht verstehen, wie NSAttributedString
dieses zu erhalten getan.
InformationsquelleAutor der Frage Adam | 2013-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Notwendigkeit für die Verwendung von
NSAttributedString
. Alles, was Sie brauchen, ist ein einfaches label mit der richtigentextColor
. Plus diese einfache Lösung funktioniert mit allen iOS-Versionen, nicht nur iOS 6.Aber wenn Sie unnötig verwenden möchten
NSAttributedString
können Sie etwas wie das hier tun:InformationsquelleAutor der Antwort rmaddy
Verwenden Sie so etwas wie dies (Nicht compiler überprüft)
InformationsquelleAutor der Antwort Anoop Vaidya
In Swift 4:
In Swift 3:
Genießen.
InformationsquelleAutor der Antwort App Dev Guy
Für Swift 4:
Für Swift 3:
InformationsquelleAutor der Antwort pableiros
Swift 4,
NSAttributedStringKey
hat eine statische Eigenschaft namensforegroundColor
.foregroundColor
hat die folgende Deklaration:Folgende Spielplatz-code zeigt, wie der text eines
NSAttributedString
Instanz mitforegroundColor
:Den code unten zeigt eine mögliche
UIViewController
Umsetzung, die sich aufNSAttributedString
zur Aktualisierung des text-und text-Farbe einesUILabel
aus einerUISlider
:Beachten Sie jedoch, dass Sie nicht wirklich brauchen, zu verwenden
NSAttributedString
für so ein Beispiel und kann verlassen sich einfach auf dieUILabel
'stext
undtextColor
Eigenschaften. Daher können Sie ersetzen Sie IhrenupdateDisplay()
Umsetzung mit dem folgenden code:InformationsquelleAutor der Antwort Imanou Petit
Können Sie erstellen
NSAttributedString
ODER
NSMutableAttributedString
zu gelten benutzerdefinierte Attribute, die mit BereichenVerfügbaren Attribute: NSAttributedStringKey
InformationsquelleAutor der Antwort Lal Krishna