UISwitch - スイッチを表示

f:id:oynop:20150226223213p:plain:h200 f:id:oynop:20150226223217p:plain:h200

説明

UISwitchはUIControlのサブクラス

ソースコード

UISwitchSample.swift

import UIKit
class UISwitchSample: UIView {
    var label: UILabel!
    override init(frame: CGRect) {
        super.init(frame: frame)

        // スイッチとラベルをのせるビュー
        let view = UIView(frame: CGRectMake(0, 0, 200, 150))
        self.addSubview(view)
        view.center = self.center
        view.backgroundColor = colorPattern.main()

        // ラベル
        label = UILabel(frame: CGRectMake(0, 0, 100, 50))
        label.center = CGPointMake(view.frame.width/2, view.frame.height * 0.75)
        label.textColor = colorPattern.lightText()
        label.textAlignment = NSTextAlignment.Center
        view.addSubview(label)
        
        let sw = UISwitch(frame: CGRectMake(0, 0, 60, 40))
        view.addSubview(sw)
        sw.center = CGPointMake(view.frame.width/2, view.frame.height/2)

        // デザイン
        sw.onTintColor = colorPattern.accent()
        
        // スイッチをONにする
        sw.setOn(true, animated: true)
        label.text = "ON"

        // 値が変わった時の処理を指定
        sw.addTarget(self, action: "switchChanged:", forControlEvents: UIControlEvents.ValueChanged)
    }
    func switchChanged(sender: UISwitch) {
        // スイッチのon/off
        if sender.on { label.text = "ON"}
        else { label.text = "OFF" }
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

ViewController.swift

import UIKit
class ViewController: UIViewController {
    override func viewDidLoad() {       
        super.viewDidLoad()
        self.view.backgroundColor = colorPattern.back()
        self.view.addSubview(UISwitchSample(frame: self.view.frame))
    }
   
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}