Sobes.tech
Junior — Middle

Como irão mudar os tamanhos da View durante a animação, quando o seu frame duplicar na metade do período de animação?

sobes.tech IA

Resposta da IA

Se durante a animação, o frame View aumenta duas vezes de tamanho na metade do período da animação, as dimensões do View irão mudar da seguinte forma:

  • Durante a primeira metade da animação, as dimensões do View irão aumentar suavemente desde o tamanho original até ao dobro.
  • Na segunda metade da animação, as dimensões permanecerão no novo nível aumentado (se a animação não prever uma mudança inversa).

Ou seja, se a duração total da animação for T, então em T/2 o frame aumentará de tamanho em dobro, e depois no tempo restante T/2, o tamanho permanecerá constante.

Se a animação estiver configurada para uma mudança contínua, a alteração de tamanho será linear ou de acordo com a curva definida (ease-in, ease-out) durante a primeira metade do tempo, e depois estabilizar-se-á.

Exemplo em Swift com UIView.animate:

UIView.animate(withDuration: totalDuration) {
    UIView.animateKeyframes(withDuration: totalDuration, delay: 0, options: [], animations: {
        UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 0.5) {
            view.frame.size = CGSize(width: view.frame.width * 2, height: view.frame.height * 2)
        }
        UIView.addKeyframe(withRelativeStartTime: 0.5, relativeDuration: 0.5) {
            // As dimensões permanecem constantes
        }
    })
}

Assim, o aumento de tamanho ocorre apenas na primeira metade da animação.