Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

854
Visualizações
UIStackView: oculta y contrae la subvista con animación

Estoy tratando de ocultar la subvista de UIStackView de esta manera:

 UIViewPropertyAnimator.runningPropertyAnimator(withDuration: 2.0, delay: 0, options: [.curveEaseOut], animations: { self.label.isHidden = true self.label.alpha = 0.0 self.stackView.layoutIfNeeded() })

Sin embargo, la etiqueta desaparece instantáneamente con el uso de este código. Sospecho que esto se debe a la configuración de isHidden en verdadero, que se requiere para colapsar.

¿Hay alguna forma de ocultar y colapsar la vista secundaria de UIStackView con animación? ¿O podría ser mejor no usar UIStackView en absoluto?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Según la documentación de Apple :

Puede animar tanto los cambios en la propiedad isHidden de la subvista organizada como los cambios en las propiedades de la vista de pila colocando estos cambios dentro de un bloque de animación.

He probado el siguiente código con el simulador de iOS 12.1 y funciona como se esperaba.

 UIView.animate( withDuration: 2.0, delay: 0.0, options: [.curveEaseOut], animations: { self.label.isHidden = true self.label.alpha = 0.0 })

Gif de animación de subvista arreglada

over 4 years ago · Santiago Trujillo Relatório

0

Puede animar propiedades de vista como alpha , color , etc. Sin embargo, algunas cosas suceden instantáneamente, en este caso isHidden .

Aquí hay un ejemplo usando UIView.animate :

 UIView.animate(withDuration: 2, delay: 0, options: .curveEaseOut, animations: { self.label.alpha = 0 // Changes the label's layer alpha value }, completion: { finished in self.label.isHidden = true // Hides the label self.label.layer.alpha = 1 // Resets the label's alpha without un-hiding it })

Usando UIViewPropertyAnimator :

 UIViewPropertyAnimator.runningPropertyAnimator(withDuration: 2, delay: 0, options: .curveEaseOut, animations: { self.label.alpha = 0 // Sets the label's alpha }) { _ in self.label.isHidden = true // Hides the label self.label.alpha = 1 // Resets the label's alpha without un-hiding it }
over 4 years ago · Santiago Trujillo Relatório

0

He probado tu código. esta animando

 if self.stackView.subviews.count > 0 { UIViewPropertyAnimator.runningPropertyAnimator(withDuration: 1.0, delay: 0, options: [.curveEaseOut], animations: { self.stackView.subviews[0].isHidden = true self.stackView.subviews[0].alpha = 0.0 self.stackView.layoutIfNeeded() }) { (position) in self.stackView.subviews[0].removeFromSuperview() } }

pantalla inicial

animado

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda