Junior — Middle
Jak będą się zmieniały rozmiary View podczas animacji, gdy jej frame podwoi się w połowie okresu animacji?
sobes.tech AI
Odpowiedź od AI
Jeśli podczas animacji ramka View podwaja się w rozmiarze w połowie okresu animacji, rozmiary View będą się zmieniać w następujący sposób:
- W pierwszej połowie animacji rozmiary View będą stopniowo zwiększać się od początkowego do podwójnego.
- W drugiej połowie animacji rozmiary pozostaną na nowym, powiększonym poziomie (jeśli animacja nie przewiduje odwrotnej zmiany).
Oznacza to, że jeśli całkowity czas trwania animacji to T, to w czasie T/2 ramka zwiększy się dwukrotnie, a następnie w pozostałym czasie T/2 rozmiar będzie stały.
Jeśli animacja jest ustawiona na ciągłe zmiany, zmiana rozmiaru będzie liniowa lub zgodnie z ustaloną krzywą (ease-in, ease-out) w pierwszej połowie czasu, a potem się ustabilizuje.
Przykład w Swift z 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) {
// Rozmiary pozostają stałe
}
})
}
W związku z tym, powiększenie rozmiaru zachodzi tylko w pierwszej połowie animacji.