Sobes.tech
Junior — Middle

Ako sa budú meniť veľkosti View počas animácie, keď sa jeho frame zdvojnásobí v polovici obdobia animácie?

sobes.tech AI

Odpoveď od AI

Ak počas animácie sa rámček View zdvojnásobí v veľkosti v polovici obdobia animácie, veľkosti View sa zmenia nasledovne:

  • Počas prvej polovice animácie sa veľkosti View plynulo zväčšia od pôvodnej veľkosti po dvojnásobok.
  • V druhej polovici animácie zostanú veľkosti na novej zväčšenej úrovni (ak animácia nepredpokladá opačnú zmenu).

To znamená, že ak je celková dĺžka animácie T, tak v čase T/2 sa rámček zdvojnásobí, a v zostávajúcom čase T/2 bude veľkosť konštantná.

Ak je animácia nastavená na kontinuálnu zmenu, zmena veľkosti bude lineárna alebo podľa určeného krivky (ease-in, ease-out) počas prvej polovice času, a potom sa stabilizuje.

Príklad v Swift s 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) {
            // Veľkosti zostanú konštantné
        }
    })
}

Preto sa zväčšenie veľkosti deje iba v prvej polovici animácie.