Saltar al contenido

Cómo hacer que una etiqueta aparezca o desaparezca rápidamente

Luego de mirar en diferentes repositorios y foros de internet al concluir descubrimos la solución que te compartiremos más adelante.

Solución:

Mi sugerencia es aprovechar las extensiones de Swift para que el código sea un poco más modular y fácil de usar. Por ejemplo, si desea hacer que varias etiquetas aparezcan o desaparezcan progresivamente o que una etiqueta aparezca o desaparezca gradualmente en varias vistas, tendrá que pasar los métodos animateWithDuration a todas partes, lo que puede ser una molestia. Una alternativa más limpia es crear un archivo llamado UIView.swift (nuestra extensión UIView). Agregue el siguiente código a este archivo:

import Foundation

extension UIView 


func fadeIn(duration: NSTimeInterval = 1.0, delay: NSTimeInterval = 0.0, completion: ((Bool) -> Void) = (finished: Bool) -> Void in) 
    UIView.animateWithDuration(duration, delay: delay, options: UIViewAnimationOptions.CurveEaseIn, animations: 
        self.alpha = 1.0
        , completion: completion)  

func fadeOut(duration: NSTimeInterval = 1.0, delay: NSTimeInterval = 3.0, completion: (Bool) -> Void = (finished: Bool) -> Void in) 
    UIView.animateWithDuration(duration, delay: delay, options: UIViewAnimationOptions.CurveEaseIn, animations: 
        self.alpha = 0.0
        , completion: completion)



Ahora puede agregar la funcionalidad de entrada/salida gradual a cualquier elemento secundario de UIView (por ejemplo, UILabel, UIImage, etc.). Dentro de su función viewDidLoad(), puede agregar:

self.statusLabel.alpha = 0
self.statusLabel.text = "Sample Text Here"
self.myLabel.fadeIn(completion: 
        (finished: Bool) -> Void in
        self.myLabel.fadeOut()
        )

Ahora, puede usar este código de muestra para vistas de imágenes, etiquetas, vistas de texto, vistas de desplazamiento o cualquier elemento secundario de UIView también. Espero que esto ayude.

Aunque la vista se haya cargado, es posible que no sea visible para el usuario cuando viewDidLoad se llama. Esto significa que puede encontrar que sus animaciones parecen haber comenzado cuando las presencia. Para superar este problema, querrá comenzar su animación en viewDidAppear en cambio.

En cuanto a fadeIn y fadeOut funciones – no existen. Tendrás que escribirlos tú mismo. Afortunadamente, es muy fácil hacer esto. Algo como lo siguiente podría ser lo suficientemente bueno.

func fadeViewInThenOut(view : UIView, delay: NSTimeInterval) 

    let animationDuration = 0.25

    // Fade in the view
    UIView.animateWithDuration(animationDuration, animations:  () -> Void in
        view.alpha = 1
        )  (Bool) -> Void in

            // After the animation completes, fade out the view after a delay

            UIView.animateWithDuration(animationDuration, delay: delay, options: .CurveEaseInOut, animations:  () -> Void in
                view.alpha = 0
                ,
                completion: nil)
    

Respuesta actualizada para Swift 3 – Usando extensión

extension UIView 
    func fadeIn(duration: TimeInterval = 1.0, delay: TimeInterval = 0.0, completion: @escaping ((Bool) -> Void) = (finished: Bool) -> Void in) 
        UIView.animate(withDuration: duration, delay: delay, options: UIViewAnimationOptions.curveEaseIn, animations: 
            self.alpha = 1.0
        , completion: completion)
    

    func fadeOut(duration: TimeInterval = 1.0, delay: TimeInterval = 3.0, completion: @escaping (Bool) -> Void = (finished: Bool) -> Void in) 
        UIView.animate(withDuration: duration, delay: delay, options: UIViewAnimationOptions.curveEaseIn, animations: 
            self.alpha = 0.0
        , completion: completion)
    

Uso:

self.statusLabel.alpha = 0
self.statusLabel.text = "Sample Text Here"
self.myLabel.fadeIn(completion: 
        (finished: Bool) -> Void in
        self.myLabel.fadeOut()
        )

Reseñas y puntuaciones de la guía

Acuérdate de que te concedemos esclarecer si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *