ios - reducir - Eliminar la animación en forma rápida
quitar animaciones ipad (1)
Tengo un campo de texto donde el usuario debe ingresar información. Y una etiqueta que apunta al usuario al campo de texto (como una sugerencia).
Quiero detener la animación y eliminar la etiqueta de sugerencia una vez que el usuario presiona el campo de texto para ingresar datos.
Hay animación repetitiva en la etiqueta de texto. Fue creado por:
override func viewDidLoad() {
super.viewDidLoad()
textInput.addTarget(self, action: #selector(CalculatorViewController.removeAnimation(_:)), forControlEvents: UIControlEvents.TouchDown)
self.hintLabel.alpha = 0.0
UIView.animateWithDuration(1.5, delay: 0, options: .Repeat
, animations: ({
self.hintLabel.alpha = 1.0
}), completion: nil
)
Después de eso, he creado una función para eliminar la anotación
func removeAnimation(textField: UITextField) {
view.layer.removeAllAnimations()
self.view.layer.removeAllAnimations()
print("is it working?!")
}
Debería funcionar de acuerdo a la documentación.
Mi etiqueta sigue parpadeando aunque veo la cadena impresa en la consola. Supongo que el problema es que la animación se repite pero no tengo idea de cómo resolver este problema.
//Just remove the animation from the label. It will Work
func remove()
{
self.hintLabel.layer.removeAllAnimations()
self.view.layer.removeAllAnimations()
self.view.layoutIfNeeded()
}
Actualizar:
Si quieres convertirte en nuclear, podrías hacer esto también:
func nukeAllAnimations() {
self.view.subviews.forEach({$0.layer.removeAllAnimations()})
self.view.layer.removeAllAnimations()
self.view.layoutIfNeeded()
}