2016-03-26 10 views
6

मैं आईओएस विकास के लिए नया हूं और अपनी पसंद की भाषा के रूप में स्विफ्ट का उपयोग कर रहा हूं। मैं अपने बेटे के लिए एक साधारण छोटा कार्यक्रम विकसित कर रहा हूं जो UIButtons पर जानवरों की छवियों को प्रदर्शित करता है और जब वह सही चुनता है तो सभी बटन नई छवियों को लोड करते हैं और उन्हें एक अलग जानवर खोजने के लिए कहा जाता है।एक छवि से दूसरे छवि में संक्रमण UIButton छवि

कार्यक्रम की मूल बातें ऊपर और चल रही हैं और वह इसे खेल सकता है लेकिन अब मैं इसे प्रशंसक बनाने के लिए आगे बढ़ना चाहता हूं। जब सही छवि का चयन किया गया है और यह बटन छवियों नए प्रस्तावों से प्रतिस्थापित करने का समय है मैं का उपयोग करें:

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

बल्कि बस एक से दूसरे के लिए एक बटन की छवि को बदलने की तुलना में मैं एक एनिमेटेड संक्रमण, लेकिन मैं के साथ परिवर्तन करना चाहते हैं कैसे पता नहीं लगा सकता है।

मुझे UIViews पर संक्रमण के साथ बहुत कुछ मिल गया है और स्थायी रूप से एनिमेटिंग बटन छवियों के साथ बहुत कुछ करने के लिए बहुत कुछ मिला है, लेकिन विघटन या बाएं से दाएं या जो कुछ भी स्वाइप करने के लिए कुछ भी नहीं है।

This question एसओ पर मेरे जैसा ही काफी है लेकिन उत्तर उद्देश्य-सी का उपयोग करता है।

तो, लंबी कहानी छोटी है, क्या स्विफ्ट में एक से दूसरे में 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.transitionWithView(sender, duration: 1.5, options: .TransitionFlipFromRight, animations: { 
       sender.setImage(UIImage(named: arrItems[intItemCounter]), forState: .Normal) 
      }, completion: nil) 

    } 

कौन सा, कारण होगा दोहन पर।

आप अन्य उदाहरण से एनीमेशन चाहते हैं (में बाहर/फीका) आप कह सकते हैं:

@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

संबंधित मुद्दे