Sobes.tech
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) {
            // Димензије остају константне
        }
    })
}

Стога, повећање величине се дешава само у првој половини анимације.