ios - स्विफ्ट 3 का प्रयोग करके बटन के लिए आप शेक एनीमेशन कैसे बनाते हैं




animation swift3 (2)

मेरे पास एक फ़ंक्शन है जिसे हर 3 सेकंड कहा जाता है मैं उस बटन के लिए एक हिलाने वाला एनीमेशन कैसे बना सकता हूं जो पक्ष की तरफ हिलाता है

func shakeButton() {
    if opened == false {
        //Shake Animation
    }
}

अगर मैं आपको सही ढंग से समझा, तो शेक एनीमेशन पर इसे आज़माएं बस इस UIButton उपवर्ग में इस पद्धति का उपयोग करें

class CustomButton: UIButton {

    func shake() {
        let animation = CAKeyframeAnimation(keyPath: "transform.translation.x")
        animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
        animation.duration = 0.6
        animation.values = [-20.0, 20.0, -20.0, 20.0, -10.0, 10.0, -5.0, 5.0, 0.0 ]
        layer.add(animation, forKey: "shake")
    }
}

फिर आप कहीं भी myButton.shake() कोड या स्टोरीबोर्ड / xib myButton.shake() और myButton.shake() कॉल myButton.shake()

आप बस अपनी आवश्यकताओं पर इस समाधान को अपनाने कर सकते हैं

UPD: मैं आपकी आवश्यकताओं के बिल्कुल ठीक से संपादन उदाहरण है

UPD2: दूसरा एक समाधान बस UIButton एक्सटेंशन बनाएं

extension UIButton {

    func shake() {
        let animation = CAKeyframeAnimation(keyPath: "transform.translation.x")
        animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
        animation.duration = 0.6
        animation.values = [-20.0, 20.0, -20.0, 20.0, -10.0, 10.0, -5.0, 5.0, 0.0 ]
        layer.add(animation, forKey: "shake")
    }

}

ans आप बटन कार्रवाई कॉलबैक पर उपयोग करें:

@IBAction func shake(_ sender: UIButton) {
    sender.shake()
}

नमूना जीआईएफ या कुछ न किए जाने के बिना, आप यहां क्या जान रहे हैं, यह जानना बहुत मुश्किल है लेकिन अगर मुझे लगता है कि यह ऐसा है, जहां एक बटन एक प्रारंभिक केंद्र से, एक नए केंद्र में एक बायीं तरफ, एक नया केंद्र दाहिनी ओर, और शायद एक बार फिर दोबारा केंद्रित करने से पहले आप को यूआईवीयूव की देखनी चाहिए animateKeyframes (साथ अवधि: देरी: विकल्प: एनिमेशन: पूर्णता :) विधि







xcode8