ios - tipos - qué es una interpolación de forma en flash
¿Cómo se hace una animación de movimiento para un botón usando Swift 3 (2)
Es realmente difícil saber lo que estás buscando aquí, sin un GIF de muestra o algo así. Pero si es lo que creo que es, donde un botón se mueve desde un centro inicial, a un nuevo centro ligeramente a la izquierda, a un nuevo centro ligeramente a la derecha, y tal vez una o dos veces antes de centrar de nuevo, debe mirar UIView Método animateKeyframes (withDuration: delay: options: animations: completion :).
Tengo una función que se llama cada 3 segundos. ¿Cómo puedo hacer una animación de sacudida para el botón que se sacude de lado a lado.
func shakeButton() {
if opened == false {
//Shake Animation
}
}
si te entendí correctamente, prueba esto con la animación Shake. Simplemente use este método en su subclase 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")
}
}
Luego creas CustomButton
en algún lugar del código o storyboard / xib y llamas a myButton.shake()
Simplemente puede adoptar esta solución según sus necesidades
UPD: tengo un ejemplo de edición que se ajusta exactamente a tus necesidades
UPD2: otra solución solo, crea la extensión 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 uso en su botón de devolución de llamada de acción:
@IBAction func shake(_ sender: UIButton) {
sender.shake()
}