#6調色大師

Wen
彼得潘的 Swift iOS / Flutter App 開發教室
6 min readDec 2, 2023

熟練 outlet,action,UISlider, UIColor。

利用小矮人練習調色,將小矮人的衣服變換顏色,先上網抓一張小矮人的圖片,將衣服顏色去背

不是很好去背,有點醜

加入兩個Image View,原圖放在底層,去背圖放上層,利用slider隨機改變衣服顏色,新增random和rest的button去調整

slider程式碼

跟著顏色去調整slider滑動

@IBAction func clothrgb(_ sender: Any) {
peoplecloth.backgroundColor = UIColor(red: CGFloat(clothredcolor.value), green: CGFloat(clothgreencolor.value), blue: CGFloat(clothbluecolor.value), alpha: CGFloat(clothalphacolor.value))

}

ramdom程式碼

按下ramdom隨機變色

 @IBAction func ramdom(_ sender: Any) { clothredcolor.value = Float.random(in: 0...1)
clothbluecolor.value = Float.random(in: 0...1)
clothgreencolor.value = Float.random(in: 0...1)
clothalphacolor.value = Float.random(in: 0...1)
peoplecloth.backgroundColor = UIColor(red: CGFloat(clothredcolor.value), green: CGFloat(clothgreencolor.value), blue: CGFloat(clothbluecolor.value), alpha: CGFloat(clothalphacolor.value))
}

rest程式碼

按rest控制slider調到最左邊,和將顏色調0讓原圖衣服顏色顯示出來

@IBAction func rest(_ sender: Any) {
clothredcolor.value = 0
clothbluecolor.value = 0
clothgreencolor.value = 0
clothalphacolor.value = 0

peoplecloth.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0)
}

完整程式碼

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var people: UIImageView!


@IBOutlet weak var peoplecloth: UIImageView!





@IBOutlet weak var clothredcolor: UISlider!
@IBOutlet weak var clothbluecolor: UISlider!
@IBOutlet weak var clothgreencolor: UISlider!
@IBOutlet weak var clothalphacolor: UISlider!




@IBOutlet weak var clothlabel: UILabel!


@IBOutlet weak var ramdom: UIButton!
@IBOutlet weak var rest: UIButton!
override func viewDidLoad() {
super.viewDidLoad()

}


@IBAction func clothrgb(_ sender: Any) {
peoplecloth.backgroundColor = UIColor(red: CGFloat(clothredcolor.value), green: CGFloat(clothgreencolor.value), blue: CGFloat(clothbluecolor.value), alpha: CGFloat(clothalphacolor.value))

}



@IBAction func ramdom(_ sender: Any) { clothredcolor.value = Float.random(in: 0...1)
clothbluecolor.value = Float.random(in: 0...1)
clothgreencolor.value = Float.random(in: 0...1)
clothalphacolor.value = Float.random(in: 0...1)
peoplecloth.backgroundColor = UIColor(red: CGFloat(clothredcolor.value), green: CGFloat(clothgreencolor.value), blue: CGFloat(clothbluecolor.value), alpha: CGFloat(clothalphacolor.value))
}



@IBAction func rest(_ sender: Any) {
clothredcolor.value = 0
clothbluecolor.value = 0
clothgreencolor.value = 0
clothalphacolor.value = 0

peoplecloth.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0)
}


}

--

--