我有一個每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類。 –
非常感謝,它非常完美! –