Junior — Middle
Quais são as diferenças entre CoreGraphics e CoreAnimation, e em que casos é mais adequado usar cada uma dessas tecnologias?
sobes.tech IA
Resposta da IA
CoreGraphics é uma biblioteca gráfica 2D de baixo nível que permite desenhar linhas, formas, texto e imagens diretamente no contexto gráfico. Funciona na CPU e é usada para criar imagens rasterizadas estáticas ou dinâmicas, por exemplo, ao desenhar de forma personalizada em UIView.
CoreAnimation é uma tecnologia de animação de alto nível que funciona na GPU e permite criar animações suaves e transformações de camadas (CALayer). Está otimizada para animação de interfaces e controle de efeitos visuais sem necessidade de redesenhar manualmente o conteúdo.
Quando usar:
- CoreGraphics é adequado se precisar desenhar conteúdo personalizado (por exemplo, gráficos, diagramas, formas complexas) com controle preciso sobre os pixels.
- CoreAnimation é melhor para animar propriedades de camadas (posição, escala, opacidade), criar transições e efeitos visuais onde o desempenho e a suavidade são importantes.
Exemplo de uso de CoreAnimation para animar a opacidade:
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