[Swift]画像などを点滅させる

スポンサーリンク

アニメーションで画像の点滅をさせると実装を行いました。

アニメーション開始

UIView.animateWithDuration(1.0,               // アニメーションの時間
    delay: 0.0,                               // 遅延時間
    options: UIViewAnimationOptions.Repeat,   // 繰り返し
    animations: { () -> Void in               // アニメーションする処理
        self.blinkView.alpha = 0.0            // alpha = 0.0 で透明に
        },
    completion: nil)                          // クロージャー内にアニメーション終了後に行う処理を記述

アニメーション停止

        self.blinkView.layer.removeAllAnimations()
        self.blinkView.alpha = 1.0

例:imgViewの画像Viewに対して、点滅アニメーションを実施して、1秒後に点滅を止める

    // 1秒後に画像を点滅
    func hogehoge() {
        //点滅アニメーション
        UIView.animateWithDuration(0.2,
                                   delay: 0.0,
                                   options: UIViewAnimationOptions.Repeat,
                                   animations: {() -> Void in
                                    self.imgView.alpha = 0.0},
                                   completion: nil)
        NSTimer.scheduledTimerWithTimeInterval(1.0, target:self, selector:#selector(ViewController.transition(_:)), userInfo: "", repeats: false)
    }
    func transition(timer: NSTimer) {
        //点滅の停止処理
        UIView.setAnimationBeginsFromCurrentState(true)
        UIView.animateWithDuration(0.001, animations: {
            self.imgView.alpha = 1.0
        })
        // 点滅を止めた後、次の処理を行う
        goNextAction()
    }

自動でアニメーションを止めるために、Timerを張って止めていますが、、、、、、、、、、
もしかしたら、Timerを使わなくてもcompletionを以下のようにすればいけるかも。。。

おそらくちゃんと調べたらできそう。要確認ですね。

    completion: {(finished: Bool) -> Void in
        // アニメーション終了後の処理
        //self.moveView.backgroundColor = UIColor.redColor()
        // これ? それとも単に、transition()内の処理をもってこればよい?
        self.imgView.alpha = 1.0
    })

コメント

タイトルとURLをコピーしました