Sobes.tech
Junior

Mis on animatsioonid UIKitis?

sobes.tech AI

Vastus AI-lt

UIKit'i animatsioonid on visuaalsed muutused UI elementide omadustes (näiteks asukoht, suurus, värv, läbipaistvus) aja jooksul, mis loovad liikumise ja dünaamika illusiooni.

UIKit'i animatsioonide peamised viisid:

  1. UIView.animate(withDuration:animations:): Lihtsaim viis standardsete UIView omaduste animatsiooniks.

    // `UIView` keskpunkti ja läbipaistvuse muutmise animatsioon
    UIView.animate(withDuration: 0.5) {
        myView.center = newCenter
        myView.alpha = 0.0
    }
    
  2. UIView.animate(withDuration:delay:options:animations:completion:): Paindlikum meetod koos viivituse, animatsiooni kumeruse ja lõpetamise plokiga.

    // Animatsioon viivitusega ja kordusvalikutega
    UIView.animate(withDuration: 0.8, delay: 0.2, options: [.repeat, .autoreverse]) {
        myView.backgroundColor = .red
    } completion: { finished in
        // Tegevused pärast lõpetamist (kui see ei kordu lõpmatuseni)
    }
    
  3. Peamised animatsiooni valikud (UIView.AnimationOptions):

    • .curveEaseInOut
    • .curveEaseIn
    • .curveEaseOut
    • .curveLinear
    • .repeat
    • .autoreverse
    • .allowUserInteraction
  4. Piirangupõhised animatsioonid: Muudatuste animatsioon layoutIfNeeded() abil.

    // Piirangu muutmine
    myViewHeightConstraint.constant = 200
    
    // Kujunduse muutmise animatsioon
    UIView.animate(withDuration: 0.3) {
        self.view.layoutIfNeeded()
    }
    
  5. Üleminekud vaadete vahel: Üleminekud erinevate vaadete vahel (transition(from:to:duration:options:completion:) või konteineris).

    // Näide üleminekuga
    UIView.transition(from: oldView, to: newView, duration: 0.5, options: [.transitionFlipFromLeft]) { finished in
        // Tegevused pärast üleminekut
    }
    
  6. Core Animation (CALayer): Madalam tase ja võimsam raamistik kihtide animatsiooniks. Võimaldab animatsiooniks CALayer omadusi (näiteks position, bounds, opacity, transformatsioonid).

    // Lihtne opacity muutmise animatsioon CALayer abil
    let animation = CABasicAnimation(keyPath: "opacity")
    animation.fromValue = 1.0
    animation.toValue = 0.0
    animation.duration = 1.0
    myView.layer.add(animation, forKey: "fadeAnimation")
    
  7. Animatsioonid UIStackView kasutades: Automaatne elementide paigutuse muutmise animatsioon.

    // Uue vaate lisamine UIStackView-ile animatsiooniga
    UIView.animate(withDuration: 0.3) {
        stackView.addArrangedSubview(newView)
        stackView.layoutIfNeeded()
    }
    

Animatsioonide kasutamine parandab kasutajakogemust, muudab rakenduse interaktiivsemaks ja intuitiivsemaks.