2012-03-28 1 views
2

Ich habe derzeit ein UILabel, das ein bisschen Text hat. Was ich jetzt tun muss, ist die Textfarbe einiger Wörter im Etikett zu ändern. Ich glaube nicht, dass es einen Weg gibt, dies nur mit UILabel zu tun, und war neugierig, was der beste Weg wäre, um das zu erreichen.iOS: Was ist der beste Weg, um eine Zeichenfolge anzuzeigen, die einen Teil davon in einer anderen Farbe hat?

+0

möglich Duplikat von [Farbiger Teilstring in UITextField] (http://stackoverflow.com/questions/9241248/colored-substring-in-uitextfield) – Saphrosit

Antwort

1

Ich glaube, die einzigen Möglichkeiten, dies zu tun, sind mit Core Text oder die Anzeige des Textes als HTML in einem UIWebView.

Core Text ist effizienter und sauberer Kakao, aber die Verwendung eines UIWebView ist viel weniger kompliziert, da HTML ziemlich einfach ist. Ich würde sagen, das Hauptproblem bei der Verwendung der Web-Ansicht ist, dass Sie den Hintergrund nicht transparent unterstützen können, was ich erwähne, weil ich weiß, dass dies oft für Text benötigt wird.

Check-out-Core Text hier: https://developer.apple.com/library/mac/#documentation/StringsTextFonts/Conceptual/CoreText_Programming/Introduction/Introduction.html

+0

Eigentlich können Sie es transparent machen. Das Problem mit Webview ist, dass es seinen Inhalt nicht sofort anzeigt. –

4

Sie können eine NSAttributedString in einem Etikett setzen. Ich poste ein Beispiel aus einem meiner Projekte in einer Sekunde.

Edit: Ich erkannte gerade, dass ich den Code aus dem Projekt entfernt. Wie auch immer, Sie brauchen diese Steuerung und alles einfach sein wird:

https://github.com/AliSoftware/OHAttributedLabel/

Es ist eine UILabel Unterklasse, die zugeschrieben Strings akzeptiert.

0

Sie sollten versuchen, TTTAttributedLabel. Es ist ein Drop-In-Ersatz für UILabel, der mit NSAttributedString arbeitet und ausreichend leistungsfähig für UITableViewCells ist.

Dies ist nicht ein Stück aus der Three20-Bibliothek, die bekannt ist, um ziemlich schwer und aufgebläht zu sein.