Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
Introdução
O CAKeyframeAnimation é uma poderosa classe do Core Animation no iOS que permite criar animações complexas e suaves definindo uma série de valores-chave ao longo do tempo. Ao contrário do CABasicAnimation, que anima uma propriedade de um valor inicial para um valor final, o CAKeyframeAnimation permite especificar múltiplos valores intermediários, proporcionando um controle mais granular sobre o movimento e a aparência da animação.
Neste artigo, vamos explorar como criar animações avançadas utilizando CAKeyframeAnimation no ambiente iOS. Vamos demonstrar com exemplos práticos de código para que você possa aplicar esses conceitos em seus próprios projetos.
Exemplos
Neste exemplo, vamos criar uma animação onde uma camada (layer) se move ao longo de um caminho circular.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Criar uma camada (layer) para animar
let animatedLayer = CALayer()
animatedLayer.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
animatedLayer.backgroundColor = UIColor.red.cgColor
self.view.layer.addSublayer(animatedLayer)
// Definir o caminho da animação
let path = UIBezierPath(ovalIn: CGRect(x: 100, y: 100, width: 200, height: 200))
// Criar a animação CAKeyframeAnimation
let animation = CAKeyframeAnimation(keyPath: "position")
animation.path = path.cgPath
animation.duration = 4.0
animation.repeatCount = .infinity
// Adicionar a animação à camada
animatedLayer.add(animation, forKey: "moveAlongPath")
}
}
Aqui, vamos criar uma animação que altera a escala de uma camada em vários pontos-chave.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Criar uma camada (layer) para animar
let animatedLayer = CALayer()
animatedLayer.frame = CGRect(x: 150, y: 300, width: 50, height: 50)
animatedLayer.backgroundColor = UIColor.blue.cgColor
self.view.layer.addSublayer(animatedLayer)
// Criar a animação CAKeyframeAnimation
let animation = CAKeyframeAnimation(keyPath: "transform.scale")
animation.values = [1.0, 1.5, 0.5, 1.0]
animation.keyTimes = [0.0, 0.3, 0.6, 1.0]
animation.duration = 2.0
animation.repeatCount = .infinity
// Adicionar a animação à camada
animatedLayer.add(animation, forKey: "scaleAnimation")
}
}
Neste exemplo, vamos criar uma animação que altera a opacidade de uma camada em vários pontos-chave.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Criar uma camada (layer) para animar
let animatedLayer = CALayer()
animatedLayer.frame = CGRect(x: 150, y: 300, width: 50, height: 50)
animatedLayer.backgroundColor = UIColor.green.cgColor
self.view.layer.addSublayer(animatedLayer)
// Criar a animação CAKeyframeAnimation
let animation = CAKeyframeAnimation(keyPath: "opacity")
animation.values = [1.0, 0.0, 1.0]
animation.keyTimes = [0.0, 0.5, 1.0]
animation.duration = 3.0
animation.repeatCount = .infinity
// Adicionar a animação à camada
animatedLayer.add(animation, forKey: "opacityAnimation")
}
}
Conclusão
O CAKeyframeAnimation é uma ferramenta versátil e poderosa para criar animações complexas no iOS. Com ele, você pode definir múltiplos valores-chave e controlar a animação de propriedades como posição, escala e opacidade de uma maneira que não é possível com o CABasicAnimation. Esperamos que esses exemplos práticos tenham fornecido uma boa base para você começar a explorar e criar suas próprias animações avançadas.