Core Animation

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

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ă

  1. ^ Documentația pentru dezvoltatori Apple , la developer.apple.com . Adus la 25 februarie 2021 .
  2. ^ apple , la developer.apple.com .
  3. ^ 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) .
  4. ^ Despre iChat 2 , la www.ralphjohns.co.uk . Adus la 25 februarie 2021 .
  5. ^ Despre iMessage și SMS / MMS , pe asistența Apple . Adus la 25 februarie 2021 .

Elemente conexe

măr Portal Apple : Accesați intrările Wikipedia despre Apple