Kerneanimation
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
- ^ Apple Developer Documentation , på developer.apple.com . Hentet 25. februar 2021 .
- ^ apple , på developer.apple.com .
- ^ 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) .
- ^ Om iChat 2 på ralphjohns.co.uk . Hentet 25. februar 2021 .
- ^ Om iMessage og SMS/MMS , på Apple-support . Hentet 25. februar 2021 .
Relaterede emner
Eksterne links
- Officiel side på apple.com .