Sobes.tech
Junior — Middle

Hogyan változnak a View méretei az animáció során, amikor a frame-je a animáció felében kétszeresére nő?

sobes.tech MI

Válasz az MI-től

Ha az animáció során a keret View mérete a felére nő a animáció felében, akkor a View méretei a következőképpen változnak:

  • Az első felében az animációnak a View méretei fokozatosan növekednek az eredeti mérettől a dupláig.
  • A második felében a méretek az új, megnövelt szinten maradnak (ha az animáció nem tartalmaz fordított változást).

Vagyis, ha az animáció teljes időtartama T, akkor T/2 alatt a keret kétszeres méretű lesz, majd a fennmaradó T/2 időben a méret állandó marad.

Ha az animáció folyamatos változásra van beállítva, a méretváltozás lineáris vagy a megadott görbe szerint (ease-in, ease-out) történik az első felében, majd stabilizálódik.

Swift példában 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) {
            // A méretek állandóak maradnak
        }
    })
}

Ezért a méret növekedése csak az animáció első felében történik.