2016-03-26 21 views
6

私はiOS開発の初心者です。私の選択言語としてSwiftを使用しています。私はUIButtons上の動物の画像を表示する私の息子のための簡単な小さなプログラムを開発していると彼はすべてのボタンは、新しい画像をロードし、彼は別の動物を見つけるように求めているものを選ぶとき。遷移UIButton画像をある画像から別の画像に変換

プログラムの基本は始動しており、彼はそれをプレイすることができますが、今私はそれをもっと魅力的にしたいと思います。正しい画像を選択し、それは私が使用して新しいものにボタン画像を交換する時が来た場合:

別に
btnItem.setImage(UIImage(named: arrItems[intItemCounter]), forState: .Normal) 

ではなく、単に1からボタンの画像を変更する私はアニメーションの移行に変更をしたいけど方法を理解することはできません。

UIViewのトランジションには多くのものがあり、ボタン画像を永久にアニメーション化することには多くのことがありましたが、左から右へのディゾルブやスワイプなどのトランジションには何もありません。

This questionはSOとほとんど同じですが、答えはObjective-Cを使用しています。

簡単に言えば、SwiftのUIButtonイメージを別のイメージに移行する方法はありますか?

お時間をありがとうございます。あなたはボタンでUIView.animateWithDurationを使用できるように

答えて

16

スウィフト4.0

UIView.transition(with: sender as! UIView, duration: 1.5, options: .transitionFlipFromRight, animations: { sender.setImage(UIImage(named: arrItems[intItemCounter]), for: .normal) }, completion: nil) 

UIButton

で以下の更新はUIViewのサブクラスです。たとえば、次のように言うことができます:

ボタンをタップすると、新しい画像で反転します。あなたは他の例からアニメーションをしたい場合は

あなたが言うことができます(中アウト/フェード):

@IBAction func buttonPressed(sender: UIButton) { 
      UIView.animateWithDuration(0.5, animations: { 
        sender.alpha = 0.0 
       }, completion:{(finished) in 
        sender.setImage(UIImage(named: arrItems[intItemCounter]), forState: .Normal) 
        UIView.animateWithDuration(0.5,animations:{ 
        sender.alpha = 1.0 
        },completion:nil) 
      }) 

     } 

をあなたはまた、クロスはそうのように溶解しないことができます迅速なため

@IBAction func buttonPressed(sender: UIButton) { 
     UIView.transitionWithView(sender, duration: 1.5, options: .TransitionCrossDissolve, animations: { 
      sender.setImage(UIImage(named: arrItems[intItemCounter]), forState: .Normal) 
      }, completion: nil) 

    } 
+1

感謝を応答。テストし、治療をします。とても有難い! – bondington

関連する問題