2017-11-29 19 views
0

イメージの配列を反復処理するUIImageViewを作成します。イメージの配列を反復するUIImageViewを作成します。

そして私は、ユーザーがボタンを押すまで、停止することなく、より速く、より速く進みたいと思っています。

「ロール」ボタンを押したときにランダムなダイスフェースを表示するアプリを作成したSwiftとXcodeコースでモジュールを完成しました。

私は、ユーザーが停止ボタンを押すまで、画像がより速く、より速く反復し続ける場所を逆にしようとします。

私は答えは以下のようだと思いますが、どうすれば速く速くすることができますか?

func animate_images() 
{ 
    let myimgArr = ["1.jpg","2.jpg","3.jpg"] 
    var images = [UIImage]() 

    for i in 0..<myimgArr.count 
    { 
     images.append(UIImage(named: myimgArr[i])!) 
    } 

    imgView_ref.animationImages = images 
    imgView_ref.animationDuration = 0.04 
    imgView_ref.animationRepeatCount = 2 
    imgView_ref.startAnimating() 
} 

[停止]ボタンにこれを追加します。

imgView_ref.stopAnimating() 

それとも、この課題を解決するための簡単な方法はありますか?

+0

https://github.com/londonappbrewery/Auto-Layout-With-Dicee-iOS11 –

答えて

0

多分あなたはタイマーで試すことができますか? Timerを使用すると、メソッドを実行できます。このメソッドでは、imageView.animationDuration値を更新するtimeInterval値を更新できます。

は、例えば、以下を参照してください。

class YourViewController: UIViewController { 

    @IBOutlet weak var imgView_ref: UIImageView! 

    var timer: Timer? 
    var timeInterval = 1.0 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Your code 
     let myimgArr = ["1.jpg","2.jpg","3.jpg"] 
     var images = [UIImage]() 

     for i in 0..<myimgArr.count 
     { 
      images.append(UIImage(named: myimgArr[i])!) 
     } 

     imgView_ref.animationImages = images 

     // You need to replace this line 
     // imgView_ref.animationDuration = 0.04 
     // with 
     imgView_ref.animationDuration = timeInterval 

     // Remove this line 
     // imgView_ref.animationRepeatCount = 2 

     imgView_ref.startAnimating() 

     // Setup the timer 
     timer = Timer.scheduledTimer(timeInterval: timeInterval, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: false) 
    } 

    // This method will be called by the timer each timeInterval 
    @objc func updateTime() { 
     // Just to be sure to have a positive timeInterval 
     if timeInterval > 0.05 { 
      // We remove 0.05 to the previous timeInterval 
      timeInterval = timeInterval - 0.05 

      // We update the imgView_ref 
      imgView_ref.animationDuration = timeInterval 
      imgView_ref.startAnimating() 

      // We update the timer in order to call this method with the new timeInterval 
      timer?.invalidate() 
      timer = nil 
      timer = Timer.scheduledTimer(timeInterval: timeInterval, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: false) 
     } 
    } 
} 

はそれがあなたのために働くなら、私に教えてください。

よろしくお願いいたします。

+0

パーフェクト!また、コメントのためのthats!応援メート! –

+0

あなたの歓迎:) – IMACODE

関連する問題