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.