
[code]

    import UIKit
    
    class ViewController: UIViewController {
    
        var counter = 1
    
        var timer = NSTimer()
    
    
        var isAnimating = true
    
        @IBOutlet weak var alienImage: UIImageView!
        @IBAction func updateImage(sender: AnyObject) {
    
            if isAnimating == true {
    
                timer.invalidate()
    
                isAnimating = false
    
            } else {
    
                timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("doAnimation"), userInfo: nil, repeats: true)
    
                isAnimating = true
    
            }
    
    
        }
        override func viewDidLoad() {
            super.viewDidLoad()
    
           timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("doAnimation"), userInfo: nil, repeats: true)
    
        }
    
        func doAnimation() {
    
            if counter == 5 {
    
                counter = 1
            } else {
    
                counter++
    
            }
    
            alienImage.image = UIImage(named: "frame\(counter).png")
    
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    }
    
[/code]

現在このようなコードで、画像を５つ使ったアニメーションを作成しております。

しかし、ボタンを押しても画像の変化が全く起こりません。  
何が原因になっているのでしょうか。


CC BY-SA 3.0
2015-11-22T01:06:24.837
19150
2016-10-23T10:09:09.757
2015-11-22T01:12:14.713
7362
13249
question
ios swift
ボタンによる画面遷移についてお伺いしたいです。


御呈示のコードをまったく手を加えず、ただコピー＆ペースとしただけですが、シミュレータで動かしてみると、きっちり起動時からアニメーションしました。ボタンによるポーズと再開も問題ありませんでした。  
なので、アニメーションしないというのは、プログラムコード以外、例えばStoryboard上の編集や、Storyboardとコードの接続（Connection）の問題ではないかと、推理できます。そちらをご検証ください。

もうひとつ、調べていただきたいことがあります。  
`UIImageView`のプロパティ`image`は、Optional型です。つまりnilを代入してもエラーになりません。イメージの変更に失敗してもエラーを起こさないので、「なにも起こらない」という結果になります。

[code]

    alienImage.image = UIImage(named: "frame\(counter).png")
    let result = (alienImage.image != nil) ? "Success" : "Failure"
    print(result)
    
[/code]

このように出力して、イメージを変更できているのか、ご確認ください。


CC BY-SA 3.0
2015-11-22T01:45:37.320
19152
2015-11-22T02:03:26.543
2015-11-22T02:03:26.543
7362
7362
19150
answer