Junior — Middle
Jak se budou měnit velikosti View během animace, když se jeho frame zdvojnásobí v polovině doby animace?
sobes.tech AI
Odpověď od AI
Pokud se během animace rámeček View zdvojnásobí ve velikosti v polovině periody animace, velikosti View se změní následovně:
- Během první poloviny animace se velikosti View plynule zvětší od původní velikosti na dvojnásobek.
- Ve druhé polovině animace zůstanou velikosti na nové zvětšené úrovni (pokud animace nepočítá s opačnou změnou).
To znamená, pokud je celková délka animace T, pak v čase T/2 se rámeček zdvojnásobí, a v zbylém čase T/2 bude velikost konstantní.
Pokud je animace nastavena na kontinuální změnu, bude změna velikosti lineární nebo podle dané křivky (ease-in, ease-out) během první poloviny času, a poté se stabilizuje.
Pří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) {
// Velikosti zůstanou konstantní
}
})
}
Tedy, zvětšení velikosti dochází pouze v první polovině animace.