Junior — Middle
Kako će se veličine View-a menjati tokom animacije, kada se njegov frame udvostruči u polovini perioda animacije?
sobes.tech АИ
Одговор од АИ
Ако током анимације, рамка View се удвостручи у величини у половини периода анимације, величине View ће се променити на следећи начин:
- Током прве половине анимације, величине View ће се постепено повећавати од почетне до двоструке.
- У другој половини анимације, величине ће остати на новом повећаном нивоу (ако анимација не предвиђа обрнуту промену).
То значи, ако је укупна дужина анимације T, онда у времену T/2, рамка ће се удвостручити, а у преосталом времену T/2, величина ће бити константна.
Ако је анимација подешена за континуалну промену, промена величине ће бити линијска или према задатој кривини (ease-in, ease-out) током прве половине времена, а затим ће се стабилизовати.
Пример у Swift-у са 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) {
// Димензије остају константне
}
})
}
Стога, повећање величине се дешава само у првој половини анимације.