Swift-ändern der Farbe von text mit NSMutableAttributedStrings
Ich habe eine UITableView
und ich möchte, um die Anzeige der text in jeder Zeile mit verschiedenen Farben innerhalb der gleichen Zeile.
Habe ich versucht, diesen code versucht zu übersetzen aus dem Obj-C, aber ich kann nicht es funktioniert
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
var attrString: NSMutableAttributedString = NSMutableAttributedString(string: object.valueForKey("example1")!.description)
attrString.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(), range: NSMakeRange(0, attrString.length))
var stringToCell:String = String(format: "%@ %@", attrString, object.valueForKey("example2")!.description)
cell.textLabel?.text = stringToCell
Den Ausgang des ganzen ist
wo die Zahl 34 entspricht object.valueForKey("example1")!.description
, das problem ist also, dass die Zahl nicht rot, und der zweite Teil (object.valueForKey("example2")!.description
) wird ersetzt durch {
.
Wenn ich lassen Sie dieses Stück code, das in Bezug auf NSAttributedString
die Zeile text richtig angezeigt wird.
InformationsquelleAutor r4id4 | 2014-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem könnte liegen in der Zuordnung zu
cell.textLabel?.text
stattcell.textLabel?.attributedText
. Vielleicht so etwas wie dieses:War nicht sicher, ob Sie wollte, dass der zweite Teil des string in rot oder einer anderen Farbe, damit ich es schwarz.
InformationsquelleAutor Casey Fleser
Wenn Sie können, vermeiden Sie die Verwendung
NSMutableAttributedString
und übergeben Sie in den Parametern mit dem Konstruktor:InformationsquelleAutor Zorayr
Hier ist ein Beispiel von Attribut-text-Swift 3
InformationsquelleAutor Hardik Thakkar