iOS APP/SWIFT #7 Color change practices :

Used objects
1. IBOutlet & IBAction
2. Slider, Label, ImageView
3. Navigation controlle
4. CAGradientLayer

  • Storyboard
  • APP video
Color Change Image
  • Initial SWIFT code
import UIKit

class ColorChangeViewController: UIViewController {

@IBOutlet weak var redColor: UISlider!
@IBOutlet weak var greenColor: UISlider!
@IBOutlet weak var blueColor: UISlider!
@IBOutlet weak var alphaColor: UISlider!
@IBOutlet weak var redLabel: UILabel!
@IBOutlet weak var greenLabel: UILabel!
@IBOutlet weak var blueLabel: UILabel!
@IBOutlet weak var alphaLable: UILabel!
@IBOutlet weak var colorImageView: UIImageView!

override func viewDidLoad() {
super.viewDidLoad()
redColor.value = Float(CGFloat(0))
greenColor.value = Float(CGFloat(0))
blueColor.value = Float(CGFloat(0))
alphaColor.value = Float(0.5)
redLabel.text = String(Int(redColor.value*255))
greenLabel.text = String(Int(greenColor.value*255))
blueLabel.text = String(Int(blueColor.value*255))
alphaLable.text = String (format: "%.2f", alphaColor.value)
// Do any additional setup after loading the view.
}

func reflashValue () {

colorImageView.backgroundColor = UIColor(red: CGFloat(redColor.value), green: CGFloat(greenColor.value), blue: CGFloat(blueColor.value), alpha: CGFloat(alphaColor.value))
redLabel.text = String(Int(redColor.value*255))
greenLabel.text = String(Int(greenColor.value*255))
blueLabel.text = String(Int(blueColor.value*255))
alphaLable.text = String (format: "%.2f", alphaColor.value)
}

@IBAction func changeColor(_ sender: Any) {


reflashValue()
}

/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/

}
  • After ChatGPT suggestion
import UIKit

class ColorChangeViewController: UIViewController {

@IBOutlet weak var redColor: UISlider!
@IBOutlet weak var greenColor: UISlider!
@IBOutlet weak var blueColor: UISlider!
@IBOutlet weak var alphaColor: UISlider!
@IBOutlet weak var redLabel: UILabel!
@IBOutlet weak var greenLabel: UILabel!
@IBOutlet weak var blueLabel: UILabel!
@IBOutlet weak var alphaLable: UILabel!
@IBOutlet weak var colorImageView: UIImageView!

override func viewDidLoad() {
super.viewDidLoad()
redColor.value = 0
greenColor.value = 0
blueColor.value = 0
alphaColor.value = 0.5

updateColor()
// Do any additional setup after loading the view.
}

func updateColor () {
let red = CGFloat(redColor.value)
let green = CGFloat(greenColor.value)
let blue = CGFloat(blueColor.value)
let alpha = CGFloat(alphaColor.value)
colorImageView.backgroundColor = UIColor(red: red, green: green, blue: blue, alpha: alpha)
redLabel.text = String(Int(redColor.value*255))
greenLabel.text = String(Int(greenColor.value*255))
blueLabel.text = String(Int(blueColor.value*255))
alphaLable.text = String (format: "%.2f", alphaColor.value)
}

@IBAction func changeColor(_ sender: Any) {
updateColor()
}
}

Summary :
1. Copy and past View Controller should check the “Connection Inspector”. The APP will crash if the connection had error
2. Using CAGradientLayer to change color should set the Alpha value to 1.

--

--

ChengWen Lee
彼得潘的 Swift iOS / Flutter App 開發教室

After worked in office for 22 years, it is time to know the real word. I would like to be a Digital Nomad (Working everywhere) and on the way now~~~