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.