Einstellen der Hintergrundfarbe / Hervorhebungsfarbe für einen bestimmten String-Bereich unter Verwendung von Core Text

8

Ich habe Text mit Core Text in meiner iPhone App angelegt. Ich verwende NSAttributedString , um bestimmte Stile innerhalb des Textes für gegebene Bereiche festzulegen.

Ich kann anscheinend kein Attribut finden, um eine Hintergrund- / Hervorhebungsfarbe einzustellen, obwohl es scheint, dass es möglich ist. Ich konnte keine Konstante für den Attributnamen finden, die relevant klang und in der Dokumentation nur aufgeführt ist:

%Vor%

Craig Hockenberry, Entwickler von Twitterrific, hat öffentlich auf Twitter gesagt, dass er Core Text verwendet, um die Tweets zu rendern, und Twitterrific hat diesen Hintergrund / Höhepunkt, über den ich spreche, wenn du einen Link berührst.

Jede Hilfe oder Hinweise in die richtige Richtung wäre fantastisch, danke.

Bearbeiten: Hier ist ein Link zum Tweet , den Craig mit der Erwähnung von "Core text, attribute Strings und eine Menge harter Arbeit "und der Follow-up , der die Verwendung von CTFrameSetter-Metriken erwähnt, um herauszufinden, ob Berührungen sich mit Links überschneiden .

    
Jasarien 21.12.2010, 11:48
quelle

2 Antworten

3

Am Ende musste ich die Metrik-Methoden für den Kerntext verwenden (um den Bereich, die Grenzen, den Ursprung der Linien usw. zu erhalten), um das umgebende Rechteck der Verbindung zu berechnen. Sobald ich einen Rect für jede Zeile hatte, die den Link überspannte, zeichnete ich den Hintergrund in den Kontext, bevor ich den Text darüber neu zeichnete.

Sieht nach verdammt viel Arbeit aus, aber es funktioniert.

    
Jasarien 28.12.2010, 12:49
quelle
1

Mit iOS 6 können Sie den gewünschten Effekt mit NSBackgroundColorAttributeName erzielen. Wie:

%Vor%     
DenVog 05.12.2012 22:25
quelle