una tipos qué movimiento interpolación interpolacion guia forma cs6 crear con como clasica animate ios animation swift3 uibutton xcode8

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() }