Sobes.tech
Junior — Middle

Kaip keisis View dydis animacijos metu, kai jos frame per pusę padvigubės?

sobes.tech AI

Atsakymas iš AI

Jei per animaciją, rėmelis View padvigubėja per pusę animacijos periodo, tada View matmenys keisis taip:

  • Pirmoje animacijos pusėje, matmenys palaipsniui didės nuo pradinio iki dvigubo.
  • Antroje pusėje, matmenys liks naujame padidintame lygyje (jei animacija nenumato atvirkštinio pakeitimo).

Tai reiškia, jei bendra animacijos trukmė T, tada T/2 metu rėmelis padvigubės, o likusiu laiku T/2, dydis liks pastovus.

Jei animacija nustatyta nuolatiniam pokyčiui, dydžio keitimas bus linijinis arba pagal nustatytą kreivę (ease-in, ease-out) per pirmąją laiko pusę, o vėliau stabilizuosis.

Pavyzdys Swift kalba su 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) {
            // Dydis lieka pastovus
        }
    })
}

Taigi, dydžio didinimas vyksta tik pirmoje animacijos pusėje.