Day 13 实作调色盘App(1/3)

我们可以藉由小小的调色盘App专案来加强我们对一些元件的认识

1.先新增一个专案 -> Create a new Xcode project
(往後的专案都是按照这个方法去新增)

2.选IOS,然後选App

3.Product Name 命名自己喜欢的名称,Interface选Storyboard

4.创建成功後我们会看到两个档案,分别是我们的ViewController.swift跟我们的Main.storyboard

ViewController是编写程序的地方Main.storyboard是我们设计版面的地方

6.撰写程序码:
我们需要三个滑杆(Slider),三个输入框(TextField),跟一个显示颜色的View

这边先把@IBOutlet都拉出来

@IBOutlet  var view: UIView!
@IBOutlet  var redslider: UISlider!
@IBOutlet  var greenslider: UISlider!
@IBOutlet  var blueslider: UISlider!
@IBOutlet  var redtextfield: UITextField!
@IBOutlet  var greentextfield:UITextField!
@IBOutlet  var bluetextfield: UITextField!

这时候会报错,不用紧张,因为我们还没有在Main.storyboard那边把元件跟这些做连接~

顺便解释一下什麽是@IBOutlet~这边可以简单想成是一个桥梁,让他在程序档案里建立一个存在去对应storyboard的某个元件,让我们可以对他的属性做修改,action就是去事件发生执行的动作

接下来我们建立我们点击元件後,会发生的事情,也就是action

红色滑杆:

 @IBAction func redslider(_ sender: UISlider) {
        redtextfield.text = "\(Int(sender.value))"
                sender.minimumTrackTintColor = UIColor(red: CGFloat(redslider.value/255), green: 0, blue: 0, alpha: 1)
                sender.thumbTintColor = UIColor(red: CGFloat(redslider.value/255), green: 0, blue: 0, alpha: 1)
                VIEW.backgroundColor = UIColor(red: CGFloat(redslider.value/255), green: CGFloat(greenslider.value/255), blue: CGFloat(blueslider.value/255),alpha: 1)
    }

绿色滑杆:

 @IBAction func greenslider(_ sender: UISlider) {
        greentextfield.text = "\(Int(sender.value))"
                sender.minimumTrackTintColor = UIColor(red: 0, green: CGFloat(greenslider.value/255), blue: 0, alpha: 1)
                sender.thumbTintColor = UIColor(red: 0, green: CGFloat(greenslider.value/255), blue: 0, alpha: 1)
                VIEW.backgroundColor = UIColor(red: CGFloat(redslider.value/255), green: CGFloat(greenslider.value/255), blue: CGFloat(blueslider.value/255),alpha: 1)
    }

蓝色滑杆:

 @IBAction func blueslider(_ sender: UISlider) {
        bluetextfield.text = "\(Int(sender.value))"
               sender.minimumTrackTintColor = UIColor(red: 0, green: 0, blue: CGFloat(blueslider.value/255), alpha: 1) // 边拉边改变 Slider 颜色,由左至右
               sender.thumbTintColor = UIColor(red: 0, green: 0, blue: CGFloat(blueslider.value/255), alpha: 1) // 边拉边改变 Slider 圆圈的颜色
               VIEW.backgroundColor = UIColor(red: CGFloat(redslider.value/255), green: CGFloat(greenslider.value/255), blue: CGFloat(blueslider.value/255),alpha: 1)
    }

我们透过滑杆调整RGB的值,才能改变颜色,这边因为滑杆的最小值是0最大值是1,所以程序码要将"值/255",如下

red: CGFloat(redslider.value/255)

否则你一拉,就直接爆炸了~

再来可以留意一下我们这两段程序吗:

sender.minimumTrackTintColor 
sender.thumbTintColor 

minimumTrackTintColor,是当滑杆在滑动时,可以让那条线产生颜色的变化(如下图红色的线),会用minimumTrackTintColor而非使用用maximumTrackTintColor是因为我们的slider是从"左边滑到右边"

再来讲讲thumbTintColor也是跟上面一样,不过变化的是滑杆上圆,一样是在我们边拉动时他就可以边改边圆的颜色~

刚刚那些程序码,有出现一些关於"textfield.text"的东西
我们下一篇讲到关於输入框的使用方式~


<<:  Day 10 - 密码破解 101

>>:  25.移转 Aras PLM大小事-流程签核动态指派(4)

【Day 10】 讨论 Data Analytics Pipeline - Google Analytics on AWS (整体)

大家好~ 昨天我们已经成功拉取 Google Analytics 资料到 AWS,可是我们发现『抓取...

网路是怎样连接的(十一) 初探IP协议

思考重点 封包是如何找到下一个端节点的 IP地址在封包转发中扮演的角色 MAC地址在封包转发中扮演的...

第21车厢-input全选/取消全选功能底加啦!

本篇介绍常用的全选/取消全选功能---jquery应用篇 在input的世界里,最常做的就是抓值/...

Day 7 - 基本语法2 (型态)

昨日的回家功课小问题 没错,你如果这样写就会直接报错。 原因其实很简单,就是常数无法运算,就像 &q...

语音服务-语音转换文字范例(from-file code)

延续昨天,今天就来看看范例中是怎麽呼叫API及使用SDK吧!(打开index.html及token....