Wie mache ich mit NSAttributedString tiefgestellte und hochgestellte Zeichen?
Ich brauche, um Indizes für Chemie-Formeln (H2O, Na^2+, etc)?
Ist dies möglich mit NSAttributedString, oder gibt es eine alternative/einfachere Weise zu machen die Indizes?
InformationsquelleAutor der Frage Mahir | 2011-12-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist möglich mit
NSAttributedString
. Die Attribut-Konstanten, die Sie suchen, hängt von der Plattform ab. Für Mac OS X ist esNSSuperscriptAttributeName
und auf iOS ist eskCTSuperscriptAttributeName
. Übergeben Sie einen negativen Wert für Tiefgestellt.Die einzige Einschränkung ist, dass
UILabel
auf iOS kann nicht zeichnenNSAttributedString
s (noch, die Daumen für iOS 6). Sie würde zeichnen müssen Sie den text mit Core Text oder finden Sie einige Drittanbieter-Ersatz fürUILabel
können, zeichnen Sie einNSAttributedString
.InformationsquelleAutor der Antwort Mark Adams
Hier ist, was ich in iOS 6. Fügen Sie zunächst die CoreText, und QuartzCore-frameworks. Dann importieren:
Machte ich eine kleine Funktion, die Eingänge a plain NSString und exportiert eine NSMutableAttributedString mit dem letzten Zeichen Hochgestellt. Dies kann geändert werden, um zu ermöglichen die Einstellung der hoch-oder Tiefstellung, ändern kCTSuperscriptAttributeName Wert "-1". Auch könnten Sie eine variable hinzuzufügen, geben Sie an, wo die hochgestellten Zeichen in der Zeichenfolge. Jetzt ist es einfach nur angenommen das Ende der Zeichenfolge.
Nun, wenn ich es benutzen will kann ich tun das folgende, um es in einem UITextField:
Ich hoffe, das hilft jemandem sonst, gibt es nicht viele Beispiele gibt!
InformationsquelleAutor der Antwort Robert Wasmann
Auf iOS, die ich verpasst hatte die kCTSuperscriptAttributeName konstant, sondern hatte gute Ergebnisse mit font-size und "baseline". Es gibt Ihnen ein wenig mehr Kontrolle auch für weniger Gehorsam Schriften:
InformationsquelleAutor der Antwort Hari Karam Singh
können Sie auch Folgendes tun, wenn Sie wollen, um es etwas sauberer
InformationsquelleAutor der Antwort kevinl
InformationsquelleAutor der Antwort Bhushan