Core Animation
Core Animation este un API de vizualizare a datelor, utilizat sub sistemul de operare macOS pentru a produce o interfață de utilizator animată [1] .
Core Animation oferă dezvoltatorilor posibilitatea de a produce interfețe de utilizator animate folosind un model implicit. Programatorul specifică doar starea inițială și finală a unui obiect, în timp ce Core Animation este capabil să calculeze deplasarea acestuia. Acest lucru permite crearea relativ simplă de animații complicate, fără a necesita niciun cod specific. Core Animation poate crea o animație pentru orice obiect care este vizibil și oferă acces unificat la Core Image , Core Video și alte tehnologii Quartz . La fel ca alte modele grafice, Core Animation poate profita de accelerație cu un procesor grafic ( GPU ) [2] .
Istorie
Core Animation a apărut pentru prima dată public cu Mac OS X Leopard , dar a apărut de fapt din dezvoltarea iPhone-ului. A fost prezentat într-o demonstrație pe 7 august 2006 în timpul conferinței anuale WWDC . La Macworld Expo , Apple a dezvăluit că iPhone folosește și același concept de animație.
Operațiune
Animațiile rulează într-un fir independent de program, permițând astfel executarea simultană a procesului către Core Animation. În acest fel, performanța aplicației nu este degradată și este posibil să controlați, să opriți, să inversați și să reconstruiți animațiile în sine [3] .
Exemple
Unul dintre cele mai evidente exemple de Core Animation este iChat , mesageria instantanee Apple, înlocuită acum cu iMessage . Animațiile sunt folosite pentru a adăuga prieteni care s-au conectat la lista dvs. de contacte [4] [5] .
Un alt exemplu este interfața iPhone , un dispozitiv care montează o versiune modificată de macOS, care utilizează Core Animation.
Teme
Bazele nivelurilor
class CALayer
Un obiect care gestionează conținut bazat pe imagini și vă permite să efectuați animații pe acel conținut.
protocol CALayerDelegate
Metode pe care o aplicație le poate implementa pentru a răspunde la evenimente legate de nivel.
class CAConstraint
O reprezentare a unei singure constrângeri de aspect între două niveluri.
protocol CALayoutManager
Metode care permit unui obiect să gestioneze aspectul unui strat și subnivelele acestuia.
class CAConstraintLayoutManager
Un obiect care oferă un manager de layout bazat pe constrângeri.
protocol CAAction
O interfață care permite obiectelor să răspundă la acțiunile declanșate de un CALayer
modificat.
Text, forme și nuanțe
class CATextLayer
Un strat care oferă un aspect simplu al textului și redarea șirurilor normale sau atribuite.
class CAShapeLayer
Un strat care desenează o spline cubică Bézier în spațiul său de coordonate.
class CAGradientLayer
Un strat care atrage un gradient de culoare peste culoarea de fundal, umplând forma stratului (inclusiv colțurile rotunjite)
Animaţie
class CAAnimation
Superclasa abstractă pentru animații în Core Animation.
protocol CAAnimationDelegate
Metode pe care aplicația le poate implementa pentru a răspunde la pornirea și oprirea animațiilor.
class CAPropertyAnimation
O subclasă abstractă de CAAnimation
pentru crearea animațiilor care manipulează valoarea proprietăților stratului.
class CABasicAnimation
Un obiect care oferă funcționalități de bază de animație cu cadru unic pentru o proprietate de strat.
class CAKeyframeAnimation
Un obiect care oferă funcționalitatea de animație a cadrului cheie pentru un obiect strat.
class CASpringAnimation
O animație care aplică o forță asemănătoare arcului proprietăților unui strat.
class CATransition
Un obiect care oferă o tranziție animată între stările unui strat.
class CAValueFunction
Un obiect care oferă o metodă flexibilă pentru definirea transformărilor animate.
Grupuri de animație
class CAAnimationGroup
Un obiect care vă permite să grupați și să efectuați mai multe animații în același timp.
class CATransaction
Un mecanism pentru a grupa operațiunile arborelui cu mai multe straturi în actualizări ale arborelui de randare atomică.
Momentul animației
func CACurrentMediaTime() -> CFTimeInterval
Returnează timpul absolut actual, în secunde.
class CAMediaTimingFunction
O funcție care definește ritmul unei animații ca o curbă de sincronizare.
protocol CAMediaTiming
Metode care modelează un sistem ierarhic de sincronizare, permițând obiectelor să mapeze timpul dintre ora principală și ora locală.
class CADisplayLink
Un obiect cu temporizator care permite aplicației să își sincronizeze desenul cu rata de reîmprospătare a afișajului.
Sisteme de particule
class CAEmitterLayer
Un nivel care emite, animă și redă un sistem de particule.
class CAEmitterCell
Definiția unei particule emise de un CAEmitterLayer
.
Opțiuni avansate de strat
class CAScrollLayer
Un nivel care afișează conținut derulabil mai mare decât limitele sale.
class CATiledLayer
Un strat care oferă o modalitate de a servi în mod asincron porțiuni din conținutul stratului, potențial memorat în cache la mai multe niveluri de detaliu.
class CATransformLayer
Obiecte utilizate pentru a crea adevărate ierarhii de nivel 3D, mai degrabă decât modelul de redare a ierarhiei aplatizate utilizat de alte clase CALayer
.
class CAReplicatorLayer
Un strat care creează un număr specificat de copii ale substratului cu transformări geometrice, temporale și de culoare variate.
Metal și OpenGL
class CAMetalLayer
Un strat principal de animație pe care Metal îl poate reda, de obicei afișat pe ecran.
protocol CAMetalDrawable
Un MetalDrawable
asociat cu un strat Core Animation.
class CAEDRMetadata
Metadate care descriu modul în care valorile domeniului extins dinamic (EDR) trebuie mapate la tonuri.
class CARenderer
Un strat care permite unei aplicații să redea un arbore de strat într-un context OpenGL principal.
Vizualizarea la distanță a conținutului stratului
class CARemoteLayerClient
class CARemoteLayerServer
Transforma
Transforms
Definește matrici de transformare pentru aplicarea transformărilor afine la straturi în Core Animation.
Notă
- ^ Documentația pentru dezvoltatori Apple , la developer.apple.com . Adus la 25 februarie 2021 .
- ^ apple , la developer.apple.com .
- ^ Apple - Mac OS X Leopard - Technology - Core Animation , pe web.archive.org , 24 octombrie 2007. Accesat la 25 februarie 2021 (arhivat din original la 24 octombrie 2007) .
- ^ Despre iChat 2 , la www.ralphjohns.co.uk . Adus la 25 februarie 2021 .
- ^ Despre iMessage și SMS / MMS , pe asistența Apple . Adus la 25 februarie 2021 .