Frage

Ich habe einen Text mit gelegtem Kern Text in meinem iPhone App. Ich NSAttributedString mit für bestimmte Bereiche bestimmte Stile im Text zu setzen.

Ich kann nicht ein Attribut zu finden für die Einrichtung einen Hintergrund / Highlight-Farbe erscheinen, obwohl es scheint, wäre es möglich ist. Ich kann nicht einen Attributnamen Konstante finden, die relevant und in der Dokumentation klang nur Listen:

kCTCharacterShapeAttributeName
kCTFontAttributeName
kCTKernAttributeName
kCTLigatureAttributeName
kCTForegroundColorAttributeName
kCTForegroundColorFromContextAttributeName
kCTParagraphStyleAttributeName
kCTStrokeWidthAttributeName
kCTStrokeColorAttributeName
kCTSuperscriptAttributeName
kCTUnderlineColorAttributeName
kCTUnderlineStyleAttributeName
kCTVerticalFormsAttributeName
kCTGlyphInfoAttributeName
kCTRunDelegateAttributeName

Craig Hockenberry, Entwickler von Twitterrific hat öffentlich gesagt, auf Twitter, dass er nutzt Core-Text die Tweets zu machen, und Twitterrific hat diesen Hintergrund / Highlight, dass ich rede, wenn Sie einen Link berühren.

alt text

Jede Hilfe oder Hinweise in der richtigen Richtung wäre fantastisch, danke.

Edit: Hier ist ein Link zum Tweet Craig geschrieben Erwähnen „Core-Text, zugeschrieben Strings und eine Menge harter Arbeit“, und die folgen , die mit genannten CTFrameSetter Metriken zu arbeiten, wenn Berührungen mit Links kreuzen.

War es hilfreich?

Lösung

Am Ende hatte ich die Core-Text-Metriken Methoden zu verwenden (immer der Bereich, Grenzen, Ursprung der Linien usw.) das Begrenzungsrechteck der Verbindung zu berechnen. Sobald ich eine rect für jede Zeile der Verbindung überspannt hatte, zog ich den Hintergrund in den Kontext, bevor Sie den Text über sie neu erstellt.

Es scheint ein verdammt viel Arbeit, aber es funktioniert.

Andere Tipps

Mit iOS 6, ich glaube, Sie den Effekt bekommen Sie suchen mit: NSBackgroundColorAttributeName. Wie zum Beispiel:

[attributedString addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:selectedRange];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top