2016-05-28 4 views
-6

Das JavaScript.Swift-Äquivalent von '#' + Math.random() toString (16) .slice (2, 8)

function randomColor() { 
    return '#' + Math.random().toString(16).slice(2, 8); 
} 

Was ist die rasche Äquivalent?

+0

Diese Funktion wird nicht für Hex-Werte mit weniger als 8 Ziffern funktionieren. Nun, es wird * funktionieren *, aber Sie erhalten eine ungültige CSS-Farbzeichenfolge zurück. – Pointy

+2

Was genau macht dieser Code? – luk2302

+0

@ luk2302 versucht 6 zufällige Hexadezimalziffern zu machen. Es ist nahe daran, eine praktikable Lösung zu sein, obwohl es die "zufälligen" Farben in Richtung Blau (oder etwas, abhängig davon, denke ich) stark beeinflussen wird, selbst wenn der Fehler mit der Anzahl von Stellen behoben wurde. – Pointy

Antwort

1

Ich nehme UIKit hier an.

Swift UI verwendet normalerweise UIKit, die einen UIColor Typ darstellen, um Farbe darzustellen.

können Sie die drand48 verwenden eine zufällige Farbe zwischen 0 und 1 zu bekommen, dass mit einem Schwimmer konvertieren und dann eine UI Farbe mit diesem Parameter zurück:

func randomColor() -> UIColor { 
    return UIColor(red: CGFloat(drand48()), 
        green: CGFloat(drand48()), 
        blue: CGFloat(drand48()), 
        alpha: 1.0 
    ) 
} 

Update - fand ich diese online, das ist eine ähnliche, aber frühere Lösung - so könnte es sinnvoll sein, hier zu verlinken: https://gist.github.com/skreutzberger/32be80e2ebef71dfb793

+0

Wenn Sie möchten, dass es absichtlich blauer wird, können Sie die roten und grünen Werte mit einer Zahl multiplizieren, die kleiner als eins ist - zum Beispiel mit 0,6. –

Verwandte Themen