54
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

54
54
0

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
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?