今日の写経18

今日の写経

048. プルンプルンするButtonの作成 - Swift Docs

所感

1週間ぶりぐらいのswift書いたけど、特に問題ない。Bool書くのが少しメンドイ。 時間のあるときにやるか、時間を極力見つける

画面キャプチャ

f:id:novlessn:20150902163241p:plain

ソースコード

// ViewController.swift

import UIKit

class ViewController: UIViewController {

    // ボタン
    var myButton: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // ボタンを作成する
        myButton = UIButton()
        myButton.frame = CGRectMake(0, 0, 100, 100)
        myButton.backgroundColor = UIColor.greenColor()
        myButton.layer.masksToBounds = true
        myButton.setTitle("ボタン", forState: UIControlState.Normal)
        myButton.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
        myButton.layer.cornerRadius = 50.0
        myButton.layer.position = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height/2)
        
        // TouchDownの時のイベントを追加する
        myButton.addTarget(self, action: "onDownButton:", forControlEvents: .TouchDown)
        
        // TouchUpの時のイベントを追加する
        myButton.addTarget(self, action: "onUpButton:", forControlEvents: .TouchUpInside | .TouchUpOutside)
        
        // 背景色を黒にする
        self.view.backgroundColor = UIColor.blackColor()
        
        // ボタンをViewに追加する
        self.view.addSubview(myButton)
    }
    
    /*
    ボタンイベント(Down)
    */
    func onDownButton(sender: UIButton){
        UIView.animateWithDuration(0.06,
            animations:{ () -> Void in
                self.myButton.transform = CGAffineTransformMakeScale(0.9, 0.9)
            })
            { (Bool) -> Void in
        }
    }

    /*
    ボタンイベント(Up)
    */
    func onUpButton(sender: UIButton){
        UIView.animateWithDuration(0.1,
            animations: { () -> Void in
                self.myButton.transform = CGAffineTransformMakeScale(0.4, 0.4)
                self.myButton.transform = CGAffineTransformMakeScale(1.0, 1.0)
            })
            { (Bool) -> Void in
        }
        
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}