DAY 3 『 RGB调色盘 - 每个物件的功能 』Part2

RGB调色盘:view + slider * 3 + textfield * 3

昨天介绍了如何拉物件,今天来教各位如何写出每个物件的功能!
今天主要讲解:

  1. 按空白处收回键盘
  2. textField 改变 slider
  3. slider 改变 textField
  4. 显示颜色

除了讲解程序码之外,还会附上截图以供参考。


  1. 由於调色盘可以透过 textField 输入数值,因此当模拟器的键盘跳出时,会没有对应的程序使它收起键盘,故在 override func viewDidLoad() 底下新增键盘收起的功能
// 按空白处收回键盘
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyBoard))

// to Replace "TouchesBegan"
self.view.addGestureRecognizer(tap)

在 override func viewDidLoad() 外新增键盘收起的 @objc

// 按空白处收回键盘
@objc func dismissKeyBoard() { self.view.endEditing(true) }

  1. 在 @IBAction 写「 textField 改变 slider 」的函数
//  textField 改变 slider
@IBAction func TextFieldToSilder(textField: UITextField) {

    // 用 guard let 判断 textField.text 是否为空值,若有值则stringColor = textField.text;反之,跳出回圈不会往下执行
    guard let stringColor = textField.text else {return}
    
    // 将 stringColor 得到的值转换成 Int 型态
    guard let intColor = Int(stringColor)else {return}
    
    // 用 switch case 去判断我是在哪个 textField 输入值
    switch textField {
    case redtext:
        redslider.setValue(Float(intColor), animated: true)
    case greentext:
        greenslider.setValue(Float(intColor), animated: true)
    case bluetext:
        blueslider.setValue(Float(intColor), animated: true)
    default: break
    }
}

  1. 在 @IBAction 写「 slider 改变 textField 」的函数
    textField 的 Value 属性是 text,是文字。而 Slider 的 Value 则是 CGFloat,所以型别上需要做转换才可以正常显示。
//  slider 改变 textField
@IBAction func SliderToTextField(_ sender: Any) {

    redtext.text = "\(Int(redslider.value))"
    greentext.text = "\(Int(greenslider.value))"
    bluetext.text = "\(Int(blueslider.value))"
}

  1. 在 @IBAction 写显示颜色的函数
    RGB 是 255 / 255 去设定,所以 RGB 滑杆的参数设定如果要设置 max = 255,那这样对应的值就要除以 255,这样图片的颜色才会显示正确。
//  显示颜色
@IBAction func colorchange(_ sender: Any){
    showcolor.backgroundColor = UIColor(red: CGFloat(redslider.value)/255, green: CGFloat(greenslider.value)/255, blue: CGFloat(blueslider.value)/255, alpha: 1)
}


明天会介绍:

  1. TextFieldDelegate 如何写出 textField 的输入限制
  2. @IBAction 与 storyboard 的拉线

敬请期待!


<<:  电子书阅读器上的浏览器 [Day15] 网页汇出成 epub 档案 (I)

>>:  Day 15 : 特徵工程 tf.Tramsform 介绍

DAY 9 角角恶魔

今天想要来尝试不同画风 本来要画一只古代鱼,但是失败了......( ˘•ω•˘ ) 只好改成练习画...

Day 07: 类别、系统、羽化

「在函式里,我们计算程序行数,来衡量函式的大小;在类别里,我们使用不同的量测方式,我们计算职责的数...

Day 22 - 物件导向与向量3 - class + mouseInpress 设定

接下来设定一些基本的设定需求 分别拆成 bullet 跟 ball(细胞)两个class的写法 cl...

[D04] 取样与量化(2)

接着来更深入的了解数位影像的取样与量化吧! 取样简单来说就是我们要以多少个方格来表示这张图片,方格愈...

30天零负担轻松学会制作APP介面及设计【DAY 02】

大家好,我是YIYI,今天我想先来介绍我想制作的APP。 我想制作的APP 相信很多女生都有使用过纪...