Mehrere Farben in einem NSString
oder NSMutableStrings
sind nicht möglich. Ich habe also ein wenig darüber gehört, NSAttributedString
was mit dem iPad SDK 3.2 (oder um 3.2) eingeführt wurde und ab iPhone SDK 4.0 Beta auf dem iPhone verfügbar ist .
Ich hätte gerne eine Schnur mit drei Farben.
Der Grund, warum ich keine 3 separaten NSStrings verwende, ist, dass sich die Länge der drei NSAttributedString
Teilzeichenfolgen häufig ändert. Daher würde ich es vorziehen, keine Berechnungen zu verwenden, um 3 separate NSString
Objekte neu zu positionieren .
Wenn es möglich ist, NSAttributedString
wie mache ich Folgendes - (wenn nicht möglich mit NSAttributed-Zeichenfolge, wie würden Sie es tun):
Edit:
Denken Sie daran, @"first"
, @"second"
und @"third"
wird von anderen Saiten jederzeit ersetzt werden. Die Verwendung von fest codierten NSRange-Werten funktioniert also nicht.
quelle
Antworten:
Beim Erstellen von zugeordneten Zeichenfolgen bevorzuge ich die veränderbare Unterklasse, um die Dinge sauberer zu halten.
Davon abgesehen erstellen Sie hier eine dreifarbige Zeichenfolge:
in einem Browser eingegeben. Vorbehalt Implementierer
Offensichtlich werden Sie in solchen Bereichen nicht hart codieren. Vielleicht könnten Sie stattdessen etwas tun wie:
quelle
NSAttributedString
. Es gibt jedoch Open Source-Dinge wie OHAttributedLabel .kCTForegroundColorAttributeName
eher die Konstante alsNSForegroundColorAttributeName
.Die Frage ist bereits beantwortet ... aber ich wollte zeigen, wie man Schatten hinzufügt und die Schriftart auch mit NSAttributedString ändert, damit die Leute bei der Suche nach diesem Thema nicht weiter suchen müssen.
Hier ist eine Swift-Version ...
Warnung! Dies funktioniert für 4s.
Für 5s müssen Sie alle Float-Werte in Double-Werte ändern (da der Compiler noch nicht richtig funktioniert).
Schnelle Aufzählung für die Schriftauswahl:
Schnelles Array für den Enum-Zugriff (erforderlich, da Enum '-' nicht verwenden kann):
Schnell zugeschriebene Textfunktion:
erste und letzte Erweiterung zum Suchen von Bereichen in einem String-Array:
neue Farben:
Mein Makroersatz:
Mein Button Maker mit zugeschriebenem Text:
Mein UIView / UILabel-Hersteller mit zugeschriebenem Text, Schatten und runden Ecken:
generischer Schatten hinzufügen:
Ansichtserweiterung für Ansichtsstil:
Die eigentliche Ansicht hat die Funktion geladen:
quelle
Ich denke, es ist eine sehr bequeme Möglichkeit,
regular expressions
einen Bereich zum Anwenden von Attributen zu finden. So habe ich es gemacht:Ich habe nach einer Liste verfügbarer Attribute gesucht und sie hier und auf der ersten Seite einer Klassenreferenz nicht gefunden. Also habe ich beschlossen, hier Informationen dazu zu posten.
Standardattribute
Attributierte Zeichenfolgen unterstützen die folgenden Standardattribute für Text. Wenn sich der Schlüssel nicht im Wörterbuch befindet, verwenden Sie die unten beschriebenen Standardwerte.
NSAttributedString-Programmierhandbuch
Eine vollständige Klassenreferenz finden Sie hier .
quelle
Diese Lösung funktioniert für jede Länge
quelle
Ich habe einen Helfer geschrieben, um Attribute einfach hinzuzufügen:
https://github.com/shmidt/MASAttributes
Sie können auch über CocoaPods installieren:
pod 'MASAttributes', '~> 1.0.0'
quelle
Seit iOS 7 können Sie
NSAttributedString
mit HTML-Syntax verwenden:Sie müssen die Datei "string.html" zu Ihrem Projekt hinzufügen, und der Inhalt des HTML kann folgendermaßen aussehen:
Jetzt können Sie verwenden,
NSAttributedString
wie Sie möchten, auch ohne HTML-Datei, wie zum Beispiel:Quelle
quelle
Ich fand es immer unglaublich langwierig und mühsam, mit zugeschriebenen Saiten zu arbeiten.
Also habe ich eine Mac App erstellt, die den gesamten Code für Sie erstellt.
https://itunes.apple.com/us/app/attributed-string-creator/id730928349?mt=12
quelle
Eine einfachere Lösung mit zugeschriebener String-Erweiterung.
Versuchen Sie dies und sehen Sie (getestet in Swift 3 & 4)
Hier ist das erwartete Ergebnis:
quelle
In Swift 4:
quelle
Sie können eine
HTML
zugewiesene ZeichenfolgeSwift
wie folgt ladenSo laden Sie eine
html
from-Dateihttp://sketchytech.blogspot.in/2013/11/creating-nsattributedstring-from-html.html
Und richten Sie die Zeichenfolge gemäß Ihrem erforderlichen Attribut ein. Folgen Sie diesen Anweisungen .
Http://makeapppie.com/2014/10/20/swift-swift-using-attributed-strings-in-swift/
quelle
Ich habe eine Bibliothek erstellt, die dies viel einfacher macht. Schauen Sie sich ZenCopy an.
Sie können Stilobjekte erstellen und / oder auf Schlüssel setzen, auf die später verwiesen werden soll. So was:
Dann können Sie einfach Strings konstruieren UND formatieren UND Parameter haben :)
Sie können Dinge auch einfach mit Regex-Suchen stylen!
Dadurch werden alle Wörter mit '@' im Stil 'Token' formatiert. (zB @jpmcglone)
Ich muss es immer noch zum Laufen bringen, mit allem, was
NSAttributedString
es zu bieten hat, aber ich denkefontName
,fontSize
und Farbe deckt den Großteil davon ab. Erwarten Sie bald viele Updates :)Ich kann Ihnen bei Bedarf dabei helfen. Ich suche auch nach Feedback. Wenn es Ihnen das Leben leichter macht, würde ich sagen, dass die Mission erfüllt ist.
quelle
quelle
Um solche Probleme zu lösen, habe ich in Kürze eine Bibliothek namens Atributika erstellt.
Sie finden es hier https://github.com/psharanda/Atributika
quelle
Swift 4
Die Liste der Attribute finden Sie hier NSAttributedStringKey in Apple Docs
quelle
Super einfacher Weg dies zu tun.
Für mehr Details klicken Sie hier; https://github.com/iOSTechHub/AttributedString
quelle