Heller und dunkler Farbe, Variationen für ein bestimmtes UIColor
Wie man die verschiedenen helleren und dunkleren Variationen eines bestimmten UIColor in Swift?
- Titel Frage ist ziemlich trivial und erlauben unterschiedliche Lösungen; Sie können auch eine einzelne Funktion verwenden statt zwei mit negativen input-parameter
- Verschiedene Techniken wurden vorgeschlagen, hier stackoverflow.com/questions/11598043/..., dort sind auch Antworten in Swift.
- aktualisiert, danke für den input
- Swift - 4.0 Klicken Sie auf " Hase für die Antwort
- die Antwort war schon in der Zeit, die Sie Ihre Frage veröffentlicht. Im Allgemeinen denke ich, dass diese Frage und die anderen sind sehr ähnlich, wenn nicht dupliziert.
- Möglich, Duplikat der Etwas Hellere und eine Dunklere Farbe aus UIColor
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aktualisiert
Unter UIColor-Erweiterung:
Verwendung:
statt
.lighter()
und.darker()
verwenden, können Sie.adjust()
mit positiven Werten für die Aufhellung und negative Werte für VerdunkelungAusgabe:
=30.0
bedeuten in der Deklaration der Funktionfunc ...(by percentage:CGFloat=30.0)
Möchte ich eine andere version mit Helligkeit & Sättigung statt RGB
Version mit den RGB-Werten Modifikation
Hier habe ich einfach
UIColor
- Erweiterung, die basierend auf früheren Antworten. Es funktioniert perfekt für mich.Unten demo:
Farben manipulation code
Eingespannt Funktion
Erweiterung einfach zu halten Werte zwischen min und max.
Für Swift 5.0 :
Kenji-Tran Antwort funktioniert gut, solange Ihr Ausgangspunkt ist die Farbe nicht schwarz (Helligkeit 0). Mit der Zugabe von ein paar Zeilen extra-code, können Sie auch schwarz "heller" (also erhellen Sie die Graustufen oder Farbwerte).
Hinweis: ich war nicht in der Lage, fügen Sie diese änderung mit einem Bearbeiten und darf ich nicht kommentieren Kenji-Tran ' s Antwort wegen meiner "neuen Jungen" rep, deshalb habe ich keinen anderen Weg gefunden, mein wissen zu teilen auf, DAMIT dann durch die Veröffentlichung einer neuen Antwort. Ich hoffe, das ist okay.
b == 0.0 && s == 0.0
? Ich dachte, die wollen nur mehr Fallb == 0
ist genug, um das Problem zu lösen. Denn wennb is 0 and s > 0
code noch nicht in der Lage sein, um die Farbe ligher?s == 0
war, weil ich wollte, dass es Arbeit für schwarz in Graustufen. Aber offensichtlich ohne dies == 0
es funktioniert für eine beliebige Farbe mit Helligkeit null. Danke.Sparen, jemand der Eingabe, die einfache praktische version ist nur
verwenden, wie
oder
Ein großes Projekt .................
Sollten Sie auf jeden Fall erweitern, apples Muster:
So, haben:
klar und deutlich
und/oder
Getestet in Xcode 10 Swift-4.x für iOS-12
Beginnen Sie mit Ihrer Farbe wie ein UIColor und wählen Sie eine Verdunkelung Faktor (als CGFloat)
Art CGColor hat einen optionalen Wert
components
die brechen die Farbe in RGBA (als CGFloat array mit Werten zwischen 0 und 1). Sie können dann rekonstruieren, eine UIColor mit RGBA-Werte aus den CGColor und manipulieren.In diesem Beispiel wird jedes der RGB-valuse wurden durch 2 geteilt, wodurch die Farbe halb so dunkel, wie es vorher war. Der alpha-Wert gleich geblieben, aber man konnte alternativ tragen Sie die dunkler-Faktor auf der alpha-Wert eher als der RGB.
Mit lukszar clampled Funktion, schrieb ich diese Funktion für die UIColor-Erweiterung, mit den realen Proportionen der RGB-Werte. Ich hoffe, es ist hilfreich
Swift 4-version, die unterstützt RGBA, HSBA, und WB (Graustufen)
Hier ist eine Variante des TranQuan ist Antwort, dass auch unterstützt Graustufen-Farben wie
.white
und.black
. (Hinweis: ich entfernte die Sättigung Anpassung, da glaube ich nicht, es gehörte in eine einfache Funktion wie diese.)