Swiftで画像を点滅させる方法
自作アプリの開発をしていた際に、画像を点滅させたかったのでやってみました。
最初はOptionsにrepeatを指定していたのですが、消えたあといきなりalpha=1.0に戻ってしまうので、以下のコードで実装しました。
class ViewController: UIViewController { @IBOutlet weak var imageView: UIImageView! private var _stopAnimation = false override func viewDidLoad() { super.viewDidLoad() // アニメーションの開始 self.startAnimation() } private func startAnimation() { if _stopAnimation { return } // 2秒かけて透明にし、完了したら2秒かけて元に戻す。 UIView.animate(withDuration: 2.0, delay: 0.0, animations: { _ in self.imageView.alpha = 0.0 }, completion: { _ in UIView.animate(withDuration: 2.0, delay: 0.0, animations: { _ in self.imageView.alpha = 1.0 }, completion: { _ in self.startAnimation() })}) } @IBAction func pushStopButton(_ sender: AnyObject) { // ボタンが押されたらアニメーションを停止する。 _stopAnimation = true } }
アニメーションを停止させたいのですが、うまいこと止まらなかったので、stopボタンが押されたら停止用の変数をtrueにしています。
何かいい方法はないものでしょうか・・・