Gibt es in iOS eine Möglichkeit, zwei oder sogar drei Schriftfarben in einem einzigen Etikett zu verwenden?
Wenn der Text "Hallo, wie geht es dir?" Als Beispiel verwendet würde, wäre das "Hallo" blau und das "Wie geht es dir?" Grün?
Ist dies möglich, scheint es einfacher zu sein, als mehrere Etiketten zu erstellen?
Antworten:
Referenz von hier.
Initialisieren Sie zunächst NSString und NSMutableAttributedString wie folgt .
In ViewDidLoad
AUSGABE
MEHRFACHE FARBE
Fügen Sie den folgenden Zeilencode in ViewDidLoad ein, um mehrere Farben in einer Zeichenfolge zu erhalten.
Mehrfarbenausgang
Swift 4
quelle
Für @Hems Moradiya
Swift 4
Swift 5
quelle
Swift 4
Mit der folgenden Erweiterungsfunktion können Sie ein Farbattribut direkt auf eine zugeordnete Zeichenfolge festlegen und dasselbe auf Ihre Beschriftung anwenden.
Versuchen Sie die obige Erweiterung mit einem Etikett:
Ergebnis:
quelle
Aktualisierte Antwort für Swift 4
Sie können HTML problemlos in der Eigenschaft attributeText des UILabel verwenden, um auf einfache Weise verschiedene Textformatierungen vorzunehmen.
Aktualisierte Antwort für Swift 2
quelle
Hier eine Lösung für Swift 5
quelle
Verwendete die Antwort von Rakeshbs , um eine Erweiterung in Swift 2 zu erstellen:
Verwendung:
Oder auch für Einzeiler
Das Gute an der Erweiterung ist, dass Sie in Ihrer gesamten Anwendung
.attributedStringFromHtml
Attribute für alleString
s haben.quelle
Mir hat es so gefallen
quelle
UPDATE für SWIFT 5
SWIFT 3
In meinem Code erstelle ich eine Erweiterung
und dies zur Verwendung
quelle
Gebrauch machen von
NSMutableAttributedString
Sehen Sie mehr Details hier schnellfüßigen mit zuzuschreibenden-strings
quelle
Swift 3.0
Für mehr Farben können Sie der veränderlichen Zeichenfolge einfach weiterhin Attribute hinzufügen. Weitere Beispiele hier .
quelle
Swift 4 UILabel-Erweiterung
In meinem Fall musste ich in der Lage sein, häufig verschiedene Farben / Schriftarten innerhalb von Beschriftungen festzulegen , damit ich eine UILabel-Erweiterung mit der Erweiterung NSMutableAttributedString von Krunal erstellen konnte.
Es kann folgendermaßen verwendet werden:
quelle
Verwenden Sie Cocoapod Prestyler :
quelle
Swift 3 Beispiel mit der HTML-Version.
quelle
Hier ist der Code, der die neueste Version von Swift ab März 2017 unterstützt.
Swift 3.0
Hier habe ich eine Helper-Klasse und -Methode für die erstellt
In den Methodenparametern inputText: String - Ihr Text, der an der Beschriftungsposition angezeigt werden soll: Int - wobei der Stil Anwendung sein soll, "0" als Anfang der Zeichenfolge oder ein gültiger Wert als Zeichenposition der Zeichenfolgenlänge: Int - From die Position bis zu wie vielen Zeichen dieser Stil anwendbar ist.
Konsumieren mit anderer Methode:
Ausgabe:
Hinweis: Die UI-Farbe kann als Farbe
UIColor.red
oder benutzerdefinierte Farben als definiert werdenUIColor(red: 0.401107, green: 0.352791, blue: 0.503067, alpha: 1.0)
quelle
quelle
Wenn Sie diesen NSForegroundColorAttributeName in einer schnell niedrigeren Version verwenden, können Sie ungelöste Bezeichnerprobleme erhalten. Ändern Sie die obigen Angaben in NSAttributedStringKey.foregroundColor .
dh NSForegroundColorAttributeName == NSAttributedStringKey.foregroundColor
quelle
Swift 4.2
Ergebnis
quelle