Odblokowanie mocy Core Animation Framework

Apr 22 2023
Jako programista iOS tworzenie atrakcyjnych wizualnie i dynamicznych interfejsów użytkownika ma kluczowe znaczenie dla zaangażowania użytkowników i podniesienia ogólnego doświadczenia z aplikacjami. Dzięki frameworkowi Core Animation możesz łatwo osiągnąć ten cel.

Jako programista iOS tworzenie atrakcyjnych wizualnie i dynamicznych interfejsów użytkownika ma kluczowe znaczenie dla zaangażowania użytkowników i podniesienia ogólnego doświadczenia z aplikacjami. Dzięki frameworkowi Core Animation możesz łatwo osiągnąć ten cel. Ta potężna platforma umożliwia programistom tworzenie płynnych i responsywnych animacji, dzięki którym Twoja aplikacja ożywa.

W tym poście na blogu zagłębimy się w platformę Core Animation, poznamy jej kluczowe komponenty i techniki, a także zaoferujemy przykłady, które pomogą Ci rozpocząć tworzenie własnych animacji.

Zrozumienie podstawowych ram animacji

  1. Warstwy (CALayer): Sercem Core Animation jest koncepcja warstw. Warstwa jest instancją klasy CALayer, która jest odpowiedzialna za zarządzanie zawartością wizualną, animacjami i właściwościami obiektu. Warstwy są zorganizowane w hierarchiczną strukturę drzewa, przy czym każda warstwa ma jedną warstwę nadrzędną i prawdopodobnie wiele warstw podrzędnych.
  2. Animacje (CABasicAnimation, CAKeyframeAnimation, CATransition): Core Animation zapewnia różnorodne klasy animacji, które pomagają tworzyć różne typy animacji. CABasicAnimation służy do prostych animacji, takich jak przesuwanie warstwy z jednej pozycji do drugiej. CAKeyframeAnimation jest bardziej wszechstronny, umożliwiając tworzenie bardziej złożonych animacji przy użyciu klatek kluczowych. CATransition służy do przechodzenia między różnymi stanami, takimi jak pojawianie się i znikanie.
  3. Funkcje czasowe (CAMediaTimingFunction): Funkcje czasowe służą do definiowania tempa animacji. CAMediaTimingFunction zapewnia predefiniowane funkcje synchronizacji, takie jak linear, easy-in, easy-out i easy-in-out, których można użyć do tworzenia płynnych i naturalnych animacji.
  4. Podstawowa transakcja animacji (CATransaction): Transakcje służą do grupowania wielu animacji razem, umożliwiając ich wykonywanie w synchronizacji lub w określonym czasie. CATransaction jest klasą odpowiedzialną za zarządzanie tymi transakcjami.

Aby lepiej zrozumieć, jak działa Core Animation, utwórzmy prostą animację, która przesuwa kwadrat po ekranie:

Utwórz UIView i CALayer

Najpierw utwórz UIView w swoim ViewControllerze i skonfiguruj CALayer z żądanym rozmiarem, pozycją i kolorem:

let myView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
myView.backgroundColor = .red
view.addSubview(myView)

let myLayer = CALayer()
myLayer.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
myLayer.backgroundColor = UIColor.blue.cgColor
myView.layer.addSublayer(myLayer)

Następnie utwórz CABasicAnimation, aby animować pozycję warstwy:

let animation = CABasicAnimation(keyPath: "position")
animation.fromValue = NSValue(cgPoint: CGPoint(x: 50, y: 50))
animation.toValue = NSValue(cgPoint: CGPoint(x: 250, y: 250))
animation.duration = 2.0
animation.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)

Na koniec dodaj animację do warstwy i zaktualizuj jej ostateczną pozycję:

myLayer.add(animation, forKey: "positionAnimation")
myLayer.position = CGPoint(x: 250, y: 250)

źródło: ChatGPT