Sobes.tech
Junior

Šta su animacije u UIKit?

sobes.tech АИ

Одговор од АИ

Анимације у UIKit-у су визуалне промене својстава UI елемената (на пример, позиција, величина, боја, транспарентност) током времена, стварајући илузију кретања и динамике.

Главни начини имплементације анимација у UIKit-у:

  1. UIView.animate(withDuration:animations:): Најједноставнији начин за анимацију стандардних својстава UIView.

    // Анимација промене центра и транспарентности UIView
    UIView.animate(withDuration: 0.5) {
        myView.center = newCenter
        myView.alpha = 0.0
    }
    
  2. UIView.animate(withDuration:delay:options:animations:completion:): Флексибилнија метода са параметрима за кашњење, кривом анимације и блоком за завршетак.

    // Анимација са кашњењем и опцијама за понављање
    UIView.animate(withDuration: 0.8, delay: 0.2, options: [.repeat, .autoreverse]) {
        myView.backgroundColor = .red
    } completion: { finished in
        // Акције након завршетка (ако се не понавља бесконачно)
    }
    
  3. Главне опције анимације (UIView.AnimationOptions):

    • .curveEaseInOut
    • .curveEaseIn
    • .curveEaseOut
    • .curveLinear
    • .repeat
    • .autoreverse
    • .allowUserInteraction
  4. Анимације засноване на ограничењима: Анимација промена constraint-ова помоћу layoutIfNeeded().

    // Промена constraint-а
    myViewHeightConstraint.constant = 200
    
    // Анимација промене распореда
    UIView.animate(withDuration: 0.3) {
        self.view.layoutIfNeeded()
    }
    
  5. Анимације прелаза између прегледа: Прелази између различитих прегледа (transition(from:to:duration:options:completion:) или унутар контејнера).

    // Пример са transition
    UIView.transition(from: oldView, to: newView, duration: 0.5, options: [.transitionFlipFromLeft]) { finished in
        // Акције након прелаза
    }
    
  6. Core Animation (CALayer): Ниже ниво и моћнији оквир за анимацију слојева. Омогућава анимацију својстава CALayer (на пример, position, bounds, opacity, трансформације).

    // Једноставна анимација промене opacity CALayer
    let animation = CABasicAnimation(keyPath: "opacity")
    animation.fromValue = 1.0
    animation.toValue = 0.0
    animation.duration = 1.0
    myView.layer.add(animation, forKey: "fadeAnimation")
    
  7. Анимације коришћењем UIStackView: Аутоматска анимација промена распореда.

    // Додавање прегледа у UIStackView са анимацијом
    UIView.animate(withDuration: 0.3) {
        stackView.addArrangedSubview(newView)
        stackView.layoutIfNeeded()
    }
    

Користећи анимације побољшава се корисничко искуство, чини апликацију интерактивнијом и интуитивнијом.