close

Kärnanimering

Hoppa till navigering Hoppa till sökning

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

  1. ^ Apple Developer Documentation , på developer.apple.com . Hämtad 25 februari 2021 .
  2. ^ apple , på developer.apple.com .
  3. ^ 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) .
  4. ^ Om iChat 2 , på ralphjohns.co.uk . Hämtad 25 februari 2021 .
  5. ^ Om iMessage och SMS/MMS , på Apples support . Hämtad 25 februari 2021 .

Relaterade artiklar

Externa länkar