［iOS］UISwitch と UISlider を連携させたアプリの作成方法

##共有すること
UISwitch と UISlider を連携させたアプリの作成方法


##参考資料
今回のアプリは、下記資料を参考に作成
[Swiftによるアプリケーション開発:入門編](https://itunes.apple.com/jp/book/swift%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-%E5%85%A5%E9%96%80%E7%B7%A8/id1209648719?mt=11) / Apple Education 

##作成したコード

```swift:colorMix/ViewController.swift
import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var colorView: UIView!
  
    @IBOutlet weak var redSwitch: UISwitch!
    @IBOutlet weak var greenSwitch: UISwitch!
    @IBOutlet weak var blueSwitch: UISwitch!
    
    @IBOutlet weak var redSlider: UISlider!
    @IBOutlet weak var greenSlider: UISlider!
    @IBOutlet weak var blueSlider: UISlider!


    @IBAction func switchChanged(_ sender: UISwitch) {
        updateColor()
    }
    
    @IBAction func sliderChanged(_ sender: UISlider) {
        updateColor()
    }
    

    func updateColor(){
        var red: CGFloat = 0
        var green: CGFloat = 0
        var blue: CGFloat = 0
        
        if redSwitch.isOn{
            red = CGFloat(redSlider.value)
        } else {
            red = 0
        }
        
        if greenSwitch.isOn{
            green = CGFloat(greenSlider.value)
        } else {
             green = 0
        }
        
        if blueSwitch.isOn{
            blue = CGFloat(blueSlider.value)
        } else {
            blue = 0
        }
        
        let color = UIColor(red:red, green:green, blue:blue, alpha:1)
        colorView.backgroundColor = color
    }
    
    
        func reset(){
        colorView.backgroundColor = UIColor(red:0,green:0,blue:0,alpha:1)
        
        redSwitch.isOn = false
        greenSwitch.isOn = false
        blueSwitch.isOn = false
        
        redSlider.value = 0
        greenSlider.value = 0
        blueSlider.value = 0
    }
    
    @IBAction func resetButton(_ sender: UIButton) {
        reset()
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
```
## 開発環境
Mac OS High Sierra / Swift 4.0 / Xcode 9.0

## アプリ作成方法
### 1. Xcodeを起動 > Single View App を選択 > アプリ名を設定
（今回はアプリ名を **colorMix** と設定）

### 2. UIView / UISwitch / UISlider / UIButton を設置
![スクリーンショット 2017-10-14 8.32.33.png](https://qiita-image-store.s3.amazonaws.com/0/199441/32dffe59-0ec6-c522-bbe8-5da76dfd7f24.png)

### 3. 各部品をViewCotroller.swiftとコネクト
#### UIView
![スクリーンショット 2017-10-14 8.35.12.png](https://qiita-image-store.s3.amazonaws.com/0/199441/5bb66038-bece-d9c1-1a68-94a71f96b09b.png)


#### UISwitch（必ず①と②をすること）
① Outletとして接続
![スクリーンショット 2017-10-14 8.36.35.png](https://qiita-image-store.s3.amazonaws.com/0/199441/01838fa8-6815-a534-52eb-3a9df03c2b52.png)

（greenSwitch / blueSwitch も同様に接続）

② Actionとして接続
redSwitch / greenSwitch / blueSwitch の３つとも下記の接続方法・コードで接続

![スクリーンショット 2017-10-14 8.43.53.png](https://qiita-image-store.s3.amazonaws.com/0/199441/9a4d66bd-b19a-2a08-4adc-84aed876cf2b.png)


```swift:colorMix.swift
   @IBAction func switchChanged(_ sender: UISwitch) {updateColor()}
```

####UIButton
resetButton として下記の接続方法・コードで接続

![スクリーンショット 2017-10-14 8.48.24.png](https://qiita-image-store.s3.amazonaws.com/0/199441/8567e559-f937-e6a2-7887-f3e9b654054c.png)

```swift:colorMix.swift
       @IBAction func resetButton(_ sender: UIButton) {reset()}
```

### 4. コードの設定
上記コードのように入力

####参考
#####SwitchのOn/Offを判定するコード
```swift
var sampleSwitch = UISwitch()

if sampleSwitch.isOn = true {

//SwitchがOnの時に行う処理

} else {

//SwitchがOffの時に行う処理

}
```

####UIViewのbackgroundColorを設定するコード
```swift
var colorView = UIView()

var red:CGFloat = 1
var green:CGFloat = 1
var blue:CGFloat = 1

//色を数値で設定する場合は、CGFloat型に変換する必要がある

colorView.backgroundColor = UIColor(red: red, green: green, blue: blue, alpha:1)
```


### 5. シミュレータの起動
![スクリーンショット 2017-10-14 9.07.59.png](https://qiita-image-store.s3.amazonaws.com/0/199441/9576a27b-510c-3a6f-03bb-f142d0951fa0.png)