【Swift】UISwitchを実装してみた

 

完成図

 

 

解説

 

・UISwitchはON/OFFを司るUI部品

・UISwitch.isOnは、true/false : ON/OFF

・1つのUISwitchで他のUISwitchのON/OFFを切り替えるには、他のUISwitchをOutletで接続する必要がある

・if文は三項演算子で実装してみた

・switch1の場合、もしONならlabelに1を、OFFなら何も表示しない。

 

ストーリーボード

 

 

f:id:nekokichi_yos2:20181019234155p:plain

 

ソースコード

 

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var switch1: UISwitch!
    @IBOutlet weak var switch2: UISwitch!
    @IBOutlet weak var switch3: UISwitch!
    
    @IBAction func switch1(_ sender: UISwitch) {
        //もしswitch1以外のいずれかのswitchがONの場合
        //それらのswitchをOFFにする
        if switch2.isOn == true || switch3.isOn == true {
            switch2.isOn = false
            switch3.isOn = false
        }
        //switch1がONなら"1"を、OFFなら""をlabel.textに代入
        label.text = switch1.isOn == true ? "1" : ""
    }
    
    @IBAction func switch2(_ sender: UISwitch) {
        //もしswitch2以外のいずれかのswitchがONの場合
        //それらのswitchをOFFにする
        if switch2.isOn == true || switch3.isOn == true {
            switch1.isOn = false
            switch3.isOn = false
        }
        //switch2がONなら"2"を、OFFなら""をlabel.textに代入
        label.text = switch2.isOn == true ? "2" : ""
    }
    
    @IBAction func switch3(_ sender: UISwitch) {
        //もしswitch3以外のいずれかのswitchがONの場合
        //それらのswitchをOFFにする
        if switch2.isOn == true || switch3.isOn == true {
            switch1.isOn = false
            switch2.isOn = false
        }
        //switch3がONなら"3"を、OFFなら""をlabel.textに代入
        label.text = switch3.isOn == true ? "3" : ""
    }
    
}