2016-07-03 22 views
0

Ich versuche, eine CATextLayer akzeptieren NSBackGroundColorAttributeName das Attribut in einer attributierten Zeichenfolge?CATextLayer NSBackGroundColorAttributeName gibt es eine Möglichkeit, es funktioniert zu lassen?

let mutableAttributed = NSMutableAttributedString(string: text , attributes: [ 
      NSForegroundColorAttributeName : UIColor.redColor(), 
      NSBackgroundColorAttributeName : UIColor.whiteColor(), 
      NSFontAttributeName :UIFont.systemFontOfSize(12) 
      ]) 
    let textLayer = CATextLayer() 
    textLayer.needsDisplayOnBoundsChange = true 
    textLayer.string = mutableAttributed 
    textLayer.bounds.size = CGSizeMake(200,200) 

Aber es funktioniert einfach nicht, Stapel Lesen ich eine vernünftige answer gefunden habe, aber ist ziemlich alt, und es scheint nicht ganz klar zu sein, wenn von iOS6 sie es oder nicht unterstützen sollte.

Antwort

1

Die Antwort, auf die Sie hingewiesen haben, ist richtig. CATextLayer ist sehr primitiv und unterstützt diese Funktion nicht. Zum Glück ist es auch nicht notwendig, Kerntext zu verwenden. Sie können jetzt TextKit verwenden und die Zeichenkette direkt zeichnen (und CATextLayer überhaupt nicht verwenden).

+0

Entschuldigung, ich habe gerade versucht, Code aus dem Original zu montieren, natürlich im Original Ich habe die richtige Eigenschaft eingestellt. Ich habe die Antwort aktualisiert. Danke – Andrea

+0

Code hinzugefügt, der zeigt, wie man einen CALayer baut, der seinen eigenen attributierten Text zeichnet. – matt

+0

Eigentlich kann ich keine normale TextKit-Ansicht verwenden, weil ich Ebenen über eine Videokomposition hinzufüge. Soweit ich mich erinnere, sagen Apple explizit, dass UIViews Layer nicht verwendet wird. Jetzt denke ich, um Ihren Code zu verwenden oder nur Zeichenfolgeattribute aufzuzählen, um nur den Schichthintergrund einzustellen. Vielen Dank – Andrea

Verwandte Themen