close

Základní animace

Přejít na navigaci Přejít na hledání

Core Animation je rozhraní API pro vizualizaci dat , které se používá pod operačním systémem macOS k vytvoření animovaného uživatelského rozhraní [1] .

Core Animation nabízí vývojářům možnost vytvářet animovaná uživatelská rozhraní pomocí implicitního modelu. Programátor pouze specifikuje počáteční a konečný stav objektu, zatímco Core Animation je schopen vypočítat jeho posunutí. To umožňuje relativně jednoduchou tvorbu komplikovaných animací, aniž by bylo zapotřebí jakéhokoli specifického kódu. Core Animation dokáže vytvořit animaci pro jakýkoli objekt, který je viditelný, a poskytuje jednotný přístup k Core Image , Core Video a dalším technologiím Quartz . Stejně jako ostatní grafické modely může Core Animation využívat výhod akcelerace s grafickým procesorem ( GPU ) [2] .

Historie

Core Animation se poprvé veřejně objevila s Mac OS X Leopard , ale ve skutečnosti se objevila při vývoji iPhonu. To bylo ukázáno v demu 7. srpna 2006 na výroční konferenci WWDC . Na Macworld Expo Apple odhalil, že stejný koncept animace používá i iPhone.

Operace

Animace běží ve vlákně nezávislém na programu , což umožňuje souběžné provádění procesů v Core Animation. Nedochází tak ke snížení výkonu aplikace a je možné samotné animace ovládat, zastavovat, vracet a přestavět [3] .

Příklady

Jedním z nejviditelnějších příkladů Core Animation je iChat , instant messenger společnosti Apple, nyní nahrazený iMessage . Animace slouží k přidání přátel, kteří se přihlásili do vašeho seznamu kontaktů [4] [5] .

Dalším příkladem je rozhraní iPhone , zařízení, které připojuje upravenou verzi macOS, která využívá Core Animation.

Témata

Základy vrstvy

class CALayer

Objekt, který zpracovává obsah založený na obrázcích a umožňuje na tomto obsahu provádět animace.

protocol CALayerDelegate

Metody, které může aplikace implementovat, aby reagovala na události související s úrovní.

class CAConstraint

Reprezentace jednoho omezení rozvržení mezi dvěma úrovněmi.

protocol CALayoutManager

Metody, které umožňují objektu spravovat rozložení vrstvy a jejích podúrovní.

class CAConstraintLayoutManager

Objekt, který poskytuje správce rozvržení na základě omezení.

protocol CAAction

Rozhraní, které umožňuje objektům reagovat na akce vyvolané CALayerzměnou.

Text, tvary a odstíny

class CATextLayer

Vrstva, která poskytuje jednoduché rozvržení textu a vykreslování normálních nebo přiřazených řetězců.

class CAShapeLayer

Vrstva, která ve svém souřadnicovém prostoru kreslí kubickou Bézierovu křivku.

class CAGradientLayer

Vrstva, která kreslí barevný přechod přes barvu pozadí a vyplňuje tvar vrstvy (včetně zaoblených rohů)

Animace

class CAAnimation

Abstraktní supertřída pro animace v Core Animation.

protocol CAAnimationDelegate

Metody, které může aplikace implementovat, aby reagovala na spouštění a zastavování animací.

class CAPropertyAnimation

Abstraktní podtřída CAAnimationpro vytváření animací, které manipulují s hodnotou vlastností vrstvy.

class CABasicAnimation

Objekt, který poskytuje základní funkci animace jednoho klíčového snímku pro vlastnost vrstvy.

class CAKeyframeAnimation

Objekt, který poskytuje funkci animace klíčových snímků pro objekt vrstvy.

class CASpringAnimation

Animace, která aplikuje sílu podobnou pružině na vlastnosti vrstvy.

class CATransition

Objekt, který poskytuje animovaný přechod mezi stavy vrstvy.

class CAValueFunction

Objekt, který poskytuje flexibilní metodu pro definování animovaných transformací.

Skupiny animací

class CAAnimationGroup

Objekt, který umožňuje seskupovat a provádět více animací současně.

class CATransaction

Mechanismus pro seskupení operací se stromem více vrstev do aktualizací atomického stromu vykreslování.

Načasování animace

func CACurrentMediaTime() -> CFTimeInterval

Vrátí aktuální absolutní čas v sekundách.

class CAMediaTimingFunction

Funkce, která definuje tempo animace jako křivku časování.

protocol CAMediaTiming

Metody, které modelují hierarchický systém časování, umožňující objektům mapovat čas mezi hlavním časem a místním časem.

class CADisplayLink

Objekt časovače, který umožňuje aplikaci synchronizovat kresbu s obnovovací frekvencí displeje.

Částicové systémy

class CAEmitterLayer

Úroveň, která vysílá, oživuje a vykresluje systém částic.

class CAEmitterCell

Definice částice emitované CAEmitterLayer.

Pokročilé možnosti vrstvy

class CAScrollLayer

Úroveň, která zobrazuje rolovatelný obsah větší, než je jeho limit.

class CATiledLayer

Vrstva, která poskytuje způsob, jak asynchronně obsluhovat části obsahu vrstvy, potenciálně uložené v mezipaměti na více úrovních podrobností.

class CATransformLayer

Objekty používané k vytváření skutečných hierarchií 3D úrovně, spíše než vykreslovací model sloučené hierarchie používaný jinými třídami CALayer.

class CAReplicatorLayer

Vrstva, která vytváří zadaný počet kopií podvrstvy s různými geometrickými, časovými a barevnými transformacemi.

Metal a OpenGL

class CAMetalLayer

Hlavní animační vrstva, kterou Metal dokáže vykreslit, obvykle se zobrazí na obrazovce.

protocol CAMetalDrawable

Objekt MetalDrawablespojený s vrstvou Core Animation.

class CAEDRMetadata

Metadata popisující, jak mají být hodnoty rozšířeného dynamického rozsahu (EDR) mapovány na tóny.

class CARenderer

Vrstva, která umožňuje aplikaci vykreslit strom vrstev v hlavním kontextu OpenGL .

Vzdálené prohlížení obsahu vrstvy

class CARemoteLayerClient

class CARemoteLayerServer

Transformovat

Transforms

Definuje transformační matice pro aplikaci afinních transformací na vrstvy v Core Animation.

Poznámky

  1. ^ Apple Developer Documentation , na developer.apple.com . Staženo 25. února 2021 .
  2. ^ apple , na developer.apple.com .
  3. ^ Apple - Mac OS X Leopard - Technology - Core Animation , na web.archive.org , 24. října 2007. Staženo 25. února 2021 (z originálu archivováno 24. října 2007) .
  4. ^ O iChat 2 , na ralphjohns.co.uk . Staženo 25. února 2021 .
  5. ^ O iMessage a SMS/MMS na stránce podpory Apple . Staženo 25. února 2021 .

Související položky

Externí odkazy