ryonamasteの日記

主に自身が学んだIT関連の技術情報をまとめています。

Swiftで画像を点滅させる方法2

年が明けてからだいぶ空いてしまいましたが、本年もよろしくお願いします。

前回の記事(相当前ですが・・・笑)で書いた画像を点滅させる方法ですが、その後UIBView.animateの引数にoptionsがあり、sが付いているので複数指定できるじゃん!と気付き、修正しました。 サンプルコードはUIImageViewですが、UIButton等でも同じようにいけるはずです。

class ViewController: UIViewController {
    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // アニメーションの開始
        self.startAnimation()
    }

    private func startAnimation() {
       // 2秒かけて透明にし、完了したら2秒かけて元に戻す。
       UIView.animate(withDuration: 2.0,
                       delay: 0.0,
                       options: [.repeat,.autoreverse],
                       animations: { _ in
                                    self.imageView.alpha = 0.0
            }, completion: nil)
    }

    @IBAction func pushStopButton(_ sender: AnyObject) {
        // ボタンが押されたらアニメーションを停止する。
        imageView.layer.removeAllAnimations()
    }
}

以前のコードよりだいぶスッキリ書けたと思います! やっぱコードは読みやすいのが一番ですよね。 同じような悩みに直面した方の助けになれば幸いです。