LoginSignup
54

More than 5 years have passed since last update.

Swiftでアニメーションとタイマーを使ってみた

Last updated at Posted at 2014-06-03

swiftでのタイマーやアニメーションの記事がどこにも無かったので書きました

アニメーション

作るもの

とりあえずラベルが画面外から移動してきて、完了後に「移動完了」と表示されるアプリを作ります。

前準備

ViewController.swift
@IBOutlet var label : UILabel

でラベルを宣言し、ストーリーボードと関連づけておきます

実装

viewDidLoad内にこのように書きます
objective-cではブロック構文を使用していましたが、swiftではクロージャを使います。

ViewController.swift
override func viewDidLoad() {
        super.viewDidLoad()
        UIView.animateWithDuration(3.0, animations: {() -> Void in
                self.label.center = CGPoint(x: 100,y: 300);
            }, completion: {(Bool) -> Void in
                self.label.text = "移動完了";
            })
    }

タイマー

つくるもの

カウントアップタイマーをつくります

前準備

ViewController.swift
@IBOutlet var label : UILabel

でラベルを宣言し、ストーリーボードと関連づけておきます

実装

viewDidLoad内にこのように書きます
objective-cではブロック構文を使用していましたが、swiftではクロージャを使います。

ViewController.swift
import UIKit

class ViewController: UIViewController {

    @IBOutlet var label : UILabel

    var countNum = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true)

    }

    func update() {
        label.text = String(countNum)
        countNum++
    }

}

セレクタはアノテーションなど使わず

Selector("update")

だけでいいようです。簡単!

使ってみての感想

書く量的にはObjective-Cの時とさほどかわりませんが、ブロック構文やアノテーションなどの知識がなくとも、クロージャなどの他言語の知識で実装できるのがすばらしいと思いました!
時間があったら本格的なアプリも作っていってみたいと思います!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54