Kärnanimering
Core Animation är ett datavisualiserings -API , som används under operativsystemet macOS för att skapa ett animerat användargränssnitt [1] .
Core Animation erbjuder utvecklare möjligheten att producera animerade användargränssnitt med hjälp av en implicit modell. Programmeraren anger bara det initiala och slutliga tillståndet för ett objekt, medan Core Animation kan beräkna dess förskjutning. Detta möjliggör relativt enkelt skapande av komplicerade animationer, utan att kräva någon specifik kod. Core Animation kan skapa en animation för alla objekt som är synliga och ger enhetlig åtkomst till Core Image , Core Video och andra Quartz -tekniker . Liksom andra grafikmodeller kan Core Animation dra fördel av acceleration med en grafikprocessor ( GPU ) [2] .
Historik
Core Animation dök först upp offentligt med Mac OS X Leopard , men kom faktiskt från utvecklingen av iPhone. Den visades i en demo den 7 augusti 2006 vid den årliga WWDC- konferensen . På Macworld Expo avslöjade Apple att iPhone också använder samma koncept för animering.
Operation
Animationerna körs i en programoberoende tråd , vilket möjliggör samtidig processexekvering till Core Animation. På detta sätt försämras inte applikationens prestanda och det är möjligt att kontrollera, stoppa, vända och bygga om själva animationerna [3] .
Exempel
Ett av de mest uppenbara exemplen på Core Animation är iChat , Apples instant messenger, nu ersatt med iMessage . Animationer används för att lägga till vänner som har loggat in på din kontaktlista [4] [5] .
Ytterligare ett exempel är gränssnittet för iPhone , en enhet som monterar en modifierad version av macOS, som använder Core Animation.
Teman
Grunderna i lager
class CALayer
Ett objekt som hanterar bildbaserat innehåll och låter dig utföra animationer på det innehållet.
protocol CALayerDelegate
Metoder som en app kan implementera för att svara på nivårelaterade händelser.
class CAConstraint
En representation av en enda layoutbegränsning mellan två nivåer.
protocol CALayoutManager
Metoder som tillåter ett objekt att hantera layouten för ett lager och dess undernivåer.
class CAConstraintLayoutManager
Ett objekt som tillhandahåller en begränsningsbaserad layouthanterare.
protocol CAAction
Ett gränssnitt som låter objekt reagera på åtgärder som utlöses av en CALayerförändring.
Text, former och nyanser
class CATextLayer
Ett lager som ger en enkel textlayout och rendering av normala eller tillskrivna strängar.
class CAShapeLayer
Ett lager som ritar en kubisk Bézier-spline i sitt koordinatutrymme.
class CAGradientLayer
Ett lager som ritar en färggradient över bakgrundsfärgen och fyller ut lagrets form (inklusive rundade hörn)
Animation
class CAAnimation
Den abstrakta superklassen för animationer i Core Animation.
protocol CAAnimationDelegate
Metoder som appen kan implementera för att svara på att starta och stoppa animationer.
class CAPropertyAnimation
En abstrakt underklass CAAnimationför att skapa animationer som manipulerar värdet på lageregenskaper.
class CABasicAnimation
Ett objekt som tillhandahåller grundläggande enkel nyckelbildruta-animeringsfunktion för en lageregenskap.
class CAKeyframeAnimation
Ett objekt som tillhandahåller nyckelbildsanimeringsfunktioner för ett lagerobjekt.
class CASpringAnimation
En animation som applicerar en fjäderliknande kraft på egenskaperna hos ett lager.
class CATransition
Ett objekt som ger en animerad övergång mellan tillstånden i ett lager.
class CAValueFunction
Ett objekt som tillhandahåller en flexibel metod för att definiera animerade transformationer.
Animationsgrupper
class CAAnimationGroup
Ett objekt som låter dig gruppera och utföra flera animationer samtidigt.
class CATransaction
En mekanism för att gruppera trädoperationer med flera lager i uppdateringar av atomära renderingsträd.
Tidpunkt för animeringen
func CACurrentMediaTime() -> CFTimeInterval
Returnerar den aktuella absoluta tiden, i sekunder.
class CAMediaTimingFunction
En funktion som definierar takten i en animation som en timingkurva.
protocol CAMediaTiming
Metoder som modellerar ett hierarkiskt tidsystem, vilket gör att objekt kan kartlägga tiden mellan huvudtid och lokal tid.
class CADisplayLink
Ett timerobjekt som låter applikationen synkronisera sin ritning med skärmens uppdateringsfrekvens.
Partikelsystem
class CAEmitterLayer
En nivå som avger, animerar och återger ett system av partiklar.
class CAEmitterCell
Definitionen av en partikel som emitteras av en CAEmitterLayer.
Avancerade lageralternativ
class CAScrollLayer
En nivå som visar rullningsbart innehåll som är större än dess gränser.
class CATiledLayer
Ett lager som tillhandahåller ett sätt att asynkront betjäna delar av lagrets innehåll, potentiellt cachelagrat på flera detaljnivåer.
class CATransformLayer
Objekt som används för att skapa äkta 3D-nivåhierarkier, snarare än den tillplattade hierarkirenderingsmodellen som används av andra klasser CALayer.
class CAReplicatorLayer
Ett lager som skapar ett specificerat antal kopior av underskiktet med varierande geometriska, tidsmässiga och färgomvandlingar.
Metal och OpenGL
class CAMetalLayer
Ett huvudanimeringslager som Metal kan rendera, vanligtvis för att visas på skärmen.
protocol CAMetalDrawable
Ett objekt MetalDrawablesom är associerat med ett Core Animation-lager.
class CAEDRMetadata
Metadata som beskriver hur värden för utökat dynamiskt omfång (EDR) ska mappas till toner.
class CARenderer
Ett lager som tillåter en applikation att rendera ett lagerträd i en OpenGL -huvudkontext .
Fjärrvisning av lagerinnehåll
class CARemoteLayerClient
class CARemoteLayerServer
Transformera
Transforms
Definierar transformationsmatriser för att tillämpa affina transformationer på lager i Core Animation.
Anteckningar
- ^ Apple Developer Documentation , på developer.apple.com . Hämtad 25 februari 2021 .
- ^ apple , på developer.apple.com .
- ^ Apple - Mac OS X Leopard - Technology - Core Animation , på web.archive.org , 24 oktober 2007. Hämtad 25 februari 2021 (arkiverad från originalet 24 oktober 2007) .
- ^ Om iChat 2 , på ralphjohns.co.uk . Hämtad 25 februari 2021 .
- ^ Om iMessage och SMS/MMS , på Apples support . Hämtad 25 februari 2021 .
Relaterade artiklar
Externa länkar
- Officiell webbplats , på apple.com .