021 UISliderの表示

Swift3.0に対応した新サイトオープンしました。
http://docs.fabo.io/swift/


Preview

 

Source

VIewController.swift

//

//  ViewController.swift

//  UIKit021

//


import UIKit


class ViewController: UIViewController{

    

    // 画像を設定する.

    private let myInputImage = CIImage(image: UIImage(named: "logo.jpg")!)

    

    // ImageView.定義する.

    private var myImageView: UIImageView!

    

    override func viewDidLoad() {

        

        // UIImageViewを作成する.

        myImageView = UIImageView(frame: CGRectMake(0, 0, 350, 600))

        myImageView.image = UIImage(CIImage: myInputImage!)

        self.view.addSubview(myImageView)

        

        // Sliderを作成する.

        let myGreenSlider = UISlider(frame: CGRectMake(0, 0, 200, 30))

        myGreenSlider.layer.position = CGPointMake(self.view.frame.midX, 500)

        myGreenSlider.backgroundColor = UIColor.whiteColor()

        myGreenSlider.layer.cornerRadius = 10.0

        myGreenSlider.layer.shadowOpacity = 0.5

        myGreenSlider.layer.masksToBounds = false

        

        // 最小値と最大値を設定する.

        myGreenSlider.minimumValue = 0

        myGreenSlider.maximumValue = 1

        

        // Sliderの位置を設定する.

        myGreenSlider.value = 0.5

        

        // Sliderの現在位置より右のTintカラーを変える.

        myGreenSlider.maximumTrackTintColor = UIColor.grayColor()

        

        // Sliderの現在位置より左のTintカラーを変える.

        myGreenSlider.minimumTrackTintColor = UIColor.blackColor()

        

        myGreenSlider.addTarget(self, action: "onChangeValueMySlider:", forControlEvents: UIControlEvents.ValueChanged)

        

        self.view.addSubview(myGreenSlider)

        

        self.view.backgroundColor = UIColor(red: 0, green: CGFloat(myGreenSlider.value), blue: 0, alpha: 1)

    }

    

    /*

    Sliderの値が変わった時に呼ばれるメソッド

    */

    internal func onChangeValueMySlider(sender : UISlider){

        

        // Sliderの値に応じてviewの背景のgreen値を変える.

        self.view.backgroundColor = UIColor(red: 0, green: CGFloat(sender.value), blue: 0, alpha: 1)

        

        // カラーエフェクトを指定してCIFilterをインスタンス化する.

        let myColorFilter = CIFilter(name: "CIColorCrossPolynomial")

        

        // イメージを設定する.

        myColorFilter!.setValue(myInputImage, forKey: kCIInputImageKey)

        

        // RGBの変換値を作成する.

        let r: [CGFloat] = [0.0, CGFloat(sender.value), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

        let g: [CGFloat] = [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

        let b: [CGFloat] = [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

        

        // 値の調整をする.

        myColorFilter!.setValue(CIVector(values: r, count: 10), forKey: "inputRedCoefficients")

        myColorFilter!.setValue(CIVector(values: g, count: 10), forKey: "inputGreenCoefficients")

        myColorFilter!.setValue(CIVector(values: b, count: 10), forKey: "inputBlueCoefficients")

        

        // フィルターで処理した画像をアウトプットする.

        let myOutputImage : CIImage = myColorFilter!.outputImage!

        

        // 再びUIView処理済み画像を設定する.

        myImageView.image = UIImage(CIImage: myOutputImage)

        

        // 再描画をおこなう.

        myImageView.setNeedsDisplay()

    }

}


Reference

    UISlider Class



ą
ci011.jpg
(91k)
Akira Sasaki,
2014/09/13 4:44
Comments