2016-10-31 100 views
0

是否可以使用隨機生成器來更改帶有標籤的按鈕的顏色?Swift隨機顏色生成器

對於標籤「A」是標題/顏色獨裁者,並將通知「按鈕1和按鈕2」他們將隨機生成什麼顏色。

+1

顏色由3種成分:紅色,綠色和藍色。只需在0和1之間生成3個隨機數並從它們製作'UIColor' –

回答

1
let randomRed:CGFloat = CGFloat(arc4random_uniform(256)) 
let randomGreen:CGFloat = CGFloat(arc4random_uniform(256)) 
let randomBlue:CGFloat = CGFloat(arc4random_uniform(256)) 
let myColor = UIColor(red: randomRed/255, green: randomGreen/255, blue: randomBlue/255, alpha: 1.0) 
+0

我可以使用多於3種顏色嗎? – Terril320

+0

這會生成隨機顏色。如果這就是你要求的,它不一定是紅色,綠色或藍色。 –

+0

請參閱我的編輯,這實際上是一個更好的解決方案,您的情況 –

1

試試這個代碼:

答1:生成陣列隨機顏色(限制爲3色)

注:你有初步的backgroundColor設置爲您在viewDidLoad中按鈕

yourButtonName.backgroundColor = .red // set any colour 

    //Button background array 
    let buttonBG = [UIColor.red,UIColor.green,UIColor.black] 

    //Button title colour array 
    let buttonTitle = [UIColor.orange,UIColor.cyan,UIColor.yellow] 

用法:嘗試下面的按鈕action.It會產生randomColor從數組分配內部代碼...

let BGRandomIndex = Int(arc4random_uniform(UInt32(buttonTitle.count))) 
    yourButtonName.tintColor = buttonTitle[BGRandomIndex] 

    let TitleRandomIndex = Int(arc4random_uniform(UInt32(buttonBG.count))) 
    yourButtonName.backgroundColor = buttonBG[TitleRandomIndex] 

答2:生成隨機顏色。

func randomCGFloat() -> CGFloat { 
    return CGFloat(arc4random())/CGFloat(UInt32.max) 
} 

func randomColor() -> UIColor { 
    let r = randomCGFloat() 
    let g = randomCGFloat() 
    let b = randomCGFloat() 

    // If you wanted a random alpha, just create another 
    // random number for that too. 
    return UIColor(red: r, green: g, blue: b, alpha: 1) 
} 

用法:嘗試下面的按鈕action.It將產生在每一個按鈕點擊randomColor內部代碼...

yourButtonName.backgroundColor = randomColor() // to get random background button backgroundColor 

yourButtonName.tintColor = randomColor() //to get random background button title color 
0
public func getRandomColor() -> UIColor{ 

    let randomRed:CGFloat = CGFloat(drand48()) 

    let randomGreen:CGFloat = CGFloat(drand48()) 

    let randomBlue:CGFloat = CGFloat(drand48()) 

    return UIColor(red: randomRed, green: randomGreen, blue: randomBlue, alpha: 1.0) 

    } 

你會需要一個函數來產生隨機CGFloats範圍在0到1之間:

您可以使用

CGFloat(arc4random())/CGFloat(UInt32.max) 

替代的drand48()

如果你想有一個字母隨機,只需創建另一個隨機數爲 只需創建一個隨機的背景你的觀點一樣

self.view.backgroundColor = UIColor().getRandomColor() 
+2

這是幹什麼的?它如何回答這個問題?不要只是脫口而出代碼。自己解釋一下! https://stackoverflow.com/help/how-to-answer – Rob

+0

請檢查我最近更新的答案 – gowtham