Základní animace
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
- ^ Apple Developer Documentation , na developer.apple.com . Staženo 25. února 2021 .
- ^ apple , na developer.apple.com .
- ^ 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) .
- ^ O iChat 2 , na ralphjohns.co.uk . Staženo 25. února 2021 .
- ^ O iMessage a SMS/MMS na stránce podpory Apple . Staženo 25. února 2021 .
Související položky
Externí odkazy
- Oficiální stránky na apple.com .