使用Swift 3,您如何为按钮进行摇动动画[英] How do you make a shake animation for a button using Swift 3

本文是小编为大家收集整理的关于使用Swift 3,您如何为按钮进行摇动动画的处理方法,想解了使用Swift 3,您如何为按钮进行摇动动画的问题怎么解决?使用Swift 3,您如何为按钮进行摇动动画问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有一个每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")
    }
}

然后您在代码或故事板/xib中创建CustomButton某处,然后调用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()
}

其他推荐答案

真的很难知道你在这里寻找什么,没有样品gif或其他东西.但如果这是我认为的,那么按钮从初始中心移动到左边的新中心,稍微向左边的新中心稍微向右到右侧,也可能在居中再次居中您应该查看UIView的AnimateKeyFrames(ukduration:delay:选项:动画:完成:)方法.

本文地址:https://www.itbaoku.cn/post/924471.html