UISlider - スライダーを表示

f:id:oynop:20150226220856p:plain

説明

UISliderはUIControlのサブクラス

ソースコード

UISliderSample.swift

import UIKit
class UISliderSample: UIView {
    var label: UILabel!
    override init(frame: CGRect) {
        super.init(frame: frame)
        let sld = UISlider(frame: CGRectMake(0, 0, 200, 40))
        self.addSubview(sld)

        // 位置を変更
        sld.center = self.center
                
        // 最大値・最小値を指定
        sld.minimumValue = 0.0
        sld.maximumValue = 10.0

        // 初期値を指定
        sld.setValue(5.0, animated: true)

        // デザイン
        sld.tintColor = colorPattern.accent()
        sld.backgroundColor = colorPattern.sub()
        sld.layer.masksToBounds = true
        sld.layer.cornerRadius = sld.frame.height / 2
        
        // 値が変わった時の処理を指定
        sld.addTarget(self, action: "sliderChanged:", forControlEvents: UIControlEvents.ValueChanged)
        
        // ラベルに値を表示
        label = UILabel(frame: CGRectMake(0, 0, 100, sld.frame.height))
        self.addSubview(label)
        label.center = CGPointMake(self.center.x, self.center.y + 50)

        // テキストをスライダーの値に
        label.text = "value: \(sld.value)"

        // デザイン
        label.textColor = colorPattern.lightText()
        label.backgroundColor = colorPattern.main()
        label.textAlignment = NSTextAlignment.Center
        label.layer.shadowColor = colorPattern.shadow().CGColor
        label.layer.shadowOpacity = 1.0
        label.layer.shadowOffset = CGSizeMake(10.0, 10.0)        
    }
    func sliderChanged(sender: UISlider) {
        // スライダーが動いた時にラベルの値を更新
        label.text = "value: \(sender.value)"
    }

    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(UISliderSample(frame: self.view.frame))
    }
   
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}