我有一个每3秒调用一次的函数。我该如何为按钮摇晃动画,以便左右摇晃。如何使用Swift 3为按钮制作动画动画
func shakeButton() {
if opened == false {
//Shake Animation
}
}
我有一个每3秒调用一次的函数。我该如何为按钮摇晃动画,以便左右摇晃。如何使用Swift 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")
}
}
然后你在代码或情节提要/厦门国际银行创建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")
}
}
答你的按钮动作回调使用:
@IBAction func shake(_ sender: UIButton) {
sender.shake()
}
真的很难知道你在找什么,没有示例GIF或其他东西。但是,如果我认为它是这样的,那么按钮从初始中心移动到新的中心稍微向左移动,到一个新的中心稍微靠右,也可能再过一两次,然后重新居中,你应该看看UIView的animateKeyframes(withDuration:delay:options:animations:completion :)方法。
我添加了一个链接,显示的动画我想找的类型的视频。 –
我创建了子类并添加了上面的代码,现在我该如何正确调用mybutton.shake()。在我的viewcontroller中,我添加了'giftButton.shake()',但它说UIButton没有成员动摇。 –
在我看来,你使用故事板的插座,它是UIButton类。 –
非常感谢,它非常完美! –