Sobes.tech
Junior — Middle

Aké sú rozdiely medzi CoreGraphics a CoreAnimation a kedy je vhodnejšie použiť každú z týchto technológií?

sobes.tech AI

Odpoveď od AI

CoreGraphics je nízkoúrovňová 2D grafická knižnica, ktorá umožňuje kreslenie čiar, tvarov, textu a obrázkov priamo v grafickom kontexte. Funguje na CPU a používa sa na tvorbu statických alebo dynamických rastrových obrázkov, napríklad pri vlastnom kreslení UIView.

CoreAnimation je vysokorozsahová technológia animácie, ktorá beží na GPU a umožňuje vytvárať plynulé animácie a transformácie vrstiev (CALayer). Je optimalizovaná pre animácie rozhrania a riadenie vizuálnych efektov bez potreby manuálneho prekresľovania obsahu.

Kedy použiť:

  • CoreGraphics je vhodný, ak potrebujete kresliť vlastný obsah (napríklad grafy, diagramy, zložité tvary) s presnou kontrolou nad pixelmi.
  • CoreAnimation je lepšia na animáciu vlastností vrstiev (poloha, veľkosť, priehľadnosť), tvorbu prechodov a vizuálnych efektov, kde je dôležitý výkon a plynulosť.

Príklad použitia CoreAnimation na animáciu priehľadnosti:

let layer = CALayer()
layer.opacity = 0.0
let animation = CABasicAnimation(keyPath: "opacity")
animation.fromValue = 0.0
animation.toValue = 1.0
animation.duration = 1.0
layer.add(animation, forKey: "fadeIn")
layer.opacity = 1.0