close

Kerneanimation

Hop til navigation Hop til søgning

Core Animation er en datavisualiserings- API , der bruges under macOS -operativsystemet til at producere en animeret brugergrænseflade [1] .

Core Animation giver udviklere mulighed for at producere animerede brugergrænseflader ved hjælp af en implicit model. Programmøren angiver kun den indledende og endelige tilstand af et objekt, mens Core Animation er i stand til at beregne dets forskydning. Dette giver mulighed for den relativt enkle oprettelse af komplicerede animationer uden at kræve nogen specifik kode. Core Animation kan oprette en animation for ethvert objekt, der er synligt og giver samlet adgang til Core Image , Core Video og andre Quartz -teknologier . Som andre grafikmodeller kan Core Animation drage fordel af acceleration med en grafikprocessor ( GPU ) [2] .

Historie

Core Animation dukkede først op offentligt med Mac OS X Leopard , men opstod faktisk fra udviklingen af ​​iPhone. Det blev vist i en demo den 7. august 2006 på den årlige WWDC- konference . På Macworld Expo afslørede Apple, at iPhone også bruger det samme koncept for animation.

Operation

Animationerne kører i en programuafhængig tråd , hvilket tillader samtidig procesudførelse til Core Animation. På denne måde bliver applikationens ydeevne ikke forringet, og det er muligt at kontrollere, stoppe, vende og genopbygge selve animationerne [3] .

Eksempler

Et af de mest oplagte eksempler på Core Animation er iChat , Apples instant messenger, nu erstattet med iMessage . Animationer bruges til at tilføje venner, der er logget ind på din kontaktliste [4] [5] .

Endnu et eksempel er grænsefladen på iPhone , en enhed, der monterer en modificeret version af macOS, som bruger Core Animation.

Temaer

Grundlæggende lag

class CALayer

Et objekt, der håndterer billedbaseret indhold og giver dig mulighed for at udføre animationer på dette indhold.

protocol CALayerDelegate

Metoder, en app kan implementere til at reagere på niveaurelaterede hændelser.

class CAConstraint

En repræsentation af en enkelt layoutbegrænsning mellem to niveauer.

protocol CALayoutManager

Metoder, der tillader et objekt at styre layoutet af et lag og dets underniveauer.

class CAConstraintLayoutManager

Et objekt, der giver en begrænsningsbaseret layoutmanager.

protocol CAAction

En grænseflade, der tillader objekter at reagere på handlinger udløst af en CALayerændring.

Tekst, former og nuancer

class CATextLayer

Et lag, der giver et enkelt tekstlayout og gengivelse af normale eller tilskrevne strenge.

class CAShapeLayer

Et lag, der tegner en kubisk Bézier-spline i sit koordinatrum.

class CAGradientLayer

Et lag, der tegner en farvegradient over baggrundsfarven og udfylder lagets form (inklusive afrundede hjørner)

Animation

class CAAnimation

Den abstrakte superklasse for animationer i Core Animation.

protocol CAAnimationDelegate

Metoder, som appen kan implementere til at reagere på start og stop af animationer.

class CAPropertyAnimation

En abstrakt underklasse CAAnimationtil at skabe animationer, der manipulerer værdien af ​​lagegenskaber.

class CABasicAnimation

Et objekt, der giver grundlæggende enkelt keyframe-animationsfunktionalitet til en lagegenskab.

class CAKeyframeAnimation

Et objekt, der giver keyframe-animationsfunktionalitet til et lagobjekt.

class CASpringAnimation

En animation, der anvender en fjederlignende kraft på et lags egenskaber.

class CATransition

Et objekt, der giver en animeret overgang mellem et lags tilstande.

class CAValueFunction

Et objekt, der giver en fleksibel metode til at definere animerede transformationer.

Animationsgrupper

class CAAnimationGroup

Et objekt, der giver dig mulighed for at gruppere og udføre flere animationer på samme tid.

class CATransaction

En mekanisme til at gruppere flerlags træoperationer i atomiske gengivelsestræopdateringer.

Timing af animationen

func CACurrentMediaTime() -> CFTimeInterval

Returnerer den aktuelle absolutte tid i sekunder.

class CAMediaTimingFunction

En funktion, der definerer tempoet i en animation som en timingkurve.

protocol CAMediaTiming

Metoder, der modellerer et hierarkisk timingsystem, der tillader objekter at kortlægge tiden mellem hovedtid og lokal tid.

class CADisplayLink

Et timerobjekt, der tillader applikationen at synkronisere sin tegning med skærmens opdateringshastighed.

Partikelsystemer

class CAEmitterLayer

Et niveau, der udsender, animerer og gengiver et system af partikler.

class CAEmitterCell

Definitionen af ​​en partikel udsendt af en CAEmitterLayer.

Avancerede lagindstillinger

class CAScrollLayer

Et niveau, der viser indhold, der kan rulles, større end dets grænser.

class CATiledLayer

Et lag, der giver mulighed for asynkront at betjene dele af lagets indhold, potentielt cachelagret på flere detaljeringsniveauer.

class CATransformLayer

Objekter, der bruges til at skabe ægte 3D-niveauhierarkier i stedet for den fladtrykte hierarki-gengivelsesmodel, der bruges af andre klasser CALayer.

class CAReplicatorLayer

Et lag, der skaber et specificeret antal kopier af underlaget med varierende geometriske, tidsmæssige og farvetransformationer.

Metal og OpenGL

class CAMetalLayer

Et hovedanimationslag, som Metal kan gengive, typisk til at blive vist på skærmen.

protocol CAMetalDrawable

Et objekt MetalDrawableknyttet til et Core Animation-lag.

class CAEDRMetadata

Metadata, der beskriver, hvordan Extended Dynamic Range (EDR) værdier skal kortlægges til toner.

class CARenderer

Et lag, der tillader en applikation at gengive et lagtræ i en OpenGL hovedkontekst .

Fjernvisning af lagindhold

class CARemoteLayerClient

class CARemoteLayerServer

Transformer

Transforms

Definerer transformationsmatricer til at anvende affine transformationer på lag i Core Animation.

Noter

  1. ^ Apple Developer Documentation , på developer.apple.com . Hentet 25. februar 2021 .
  2. ^ apple , på developer.apple.com .
  3. ^ Apple - Mac OS X Leopard - Technology - Core Animation , på web.archive.org , 24. oktober 2007. Hentet 25. februar 2021 (arkiveret fra originalen 24. oktober 2007) .
  4. ^ Om iChat 2ralphjohns.co.uk . Hentet 25. februar 2021 .
  5. ^ Om iMessage og SMS/MMS , på Apple-support . Hentet 25. februar 2021 .

Relaterede emner

Eksterne links