2016-05-28 6 views
-6

のjavascript:スウィフト同等(2、8)

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

迅速同等とは何ですか?

+0

この関数は8桁未満の16進値では機能しません。さて、それは*働くでしょうが、あなたは無効なCSSカラーストリングを返すでしょう。 – Pointy

+2

そのコードは正確に何をしていますか? – luk2302

+0

@ luk2302 6桁の16進数を作成しようとしています。実行可能なソリューションに近いですが、数字のバグが修正されたとしても、青色(または何か、私が推測するように)に向かって「ランダム」な色を強く偏らせます。 – Pointy

答えて

1

私はここでUIKitを想定しています。

スウィフトUIは通常、色を表現するためにUIColorタイプのUIKitを使用します。

あなたは、0と1の間のランダムな色を取得するfloatにそれを変換し、そのパラメータを使用してUIの色を返すためにdrand48を使用することができます。

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

アップデート - 私はある、このオンラインを見つけました類似しているが以前の解決策であるため、ここにリンクすることが理にかなっています。https://gist.github.com/skreutzberger/32be80e2ebef71dfb793

+0

目的がより青くなるようにする必要がある場合は、赤と緑の値に1より小さい数字を掛けることができます(たとえば、「0.6」など)。 –