Animações Implícitas e Explícitas
Anime propriedades de camadas com CABasicAnimation.
Animações Implícitas e Explícitas é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.
Duas maneiras de animar layers
Core Animation oferece animações implícitas, automáticas quando uma propriedade muda, e animações explícitas, nas quais você cria um objeto de animação.
Conhecer as duas abordagens e entender como elas interagem é essencial para obter movimentos suaves.
Animações implícitas
Alterar uma propriedade animável de uma layer independente dispara uma animação implícita usando uma curva padrão de 0,25 s — não é necessário criar um objeto de animação.
let layer = CALayer()
// Later, this animates automatically:
layer.opacity = 0.0Propriedades animáveis
Muitas propriedades de layer são animáveis: opacity, position, bounds, backgroundColor, transform, cornerRadius e outras.
layer.cornerRadius = 20 // animates implicitly
layer.backgroundColor = UIColor.systemGreen.cgColorAções e o mecanismo de ações
Animações implícitas são controladas por ações. Quando uma propriedade muda, a layer procura uma CAAction para executar. Você pode personalizar ou desativar essas ações.
Layers associadas a visualizações desativam animações implícitas
Layers associadas a uma UIView têm as animações implícitas desativadas. Em vez disso, anime-as por meio de UIView.animate ou use animações explícitas.
UIView.animate(withDuration: 0.3) {
view.alpha = 0
}CABasicAnimation
CABasicAnimation anima uma propriedade entre um fromValue e um toValue. Adicione-a à layer usando um caminho de chave correspondente à propriedade.
let anim = CABasicAnimation(keyPath: "opacity")
anim.fromValue = 1.0
anim.toValue = 0.0
anim.duration = 0.5
layer.add(anim, forKey: "fade")Apresentação versus modelo
Uma animação explícita altera apenas os valores de apresentação, os valores exibidos na tela; o valor de modelo da layer volta ao estado anterior quando a animação termina.
Para manter a alteração, defina também o valor do modelo.
layer.opacity = 0.0 // set model value so it persists
layer.add(anim, forKey: "fade")Animações de quadros-chave
CAKeyframeAnimation anima passando por vários values ao longo de keyTimes ou seguindo um path — ideal para quicadas ou movimentos ao longo de curvas.
let move = CAKeyframeAnimation(keyPath: "position")
move.values = [
NSValue(cgPoint: CGPoint(x: 0, y: 0)),
NSValue(cgPoint: CGPoint(x: 100, y: 0)),
NSValue(cgPoint: CGPoint(x: 100, y: 100))
]
move.duration = 1.0
layer.add(move, forKey: "path")Funções de temporização
Controle a aceleração com timingFunction: entrada suave, saída suave, linear ou uma curva Bézier cúbica personalizada.
anim.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)Agrupamento e transações
Envolva várias alterações em uma CATransaction para compartilhar duração e temporização ou para desativar completamente as animações implícitas.
CATransaction.begin()
CATransaction.setDisableActions(true)
layer.position = CGPoint(x: 200, y: 200)
CATransaction.commit()Delegados de animação e conclusão
Defina CATransaction.setCompletionBlock ou um delegado de animação para executar código quando o movimento terminar — para limpeza, encadeamento ou atualizações de estado.
CATransaction.begin()
CATransaction.setCompletionBlock { print("done") }
layer.add(anim, forKey: "fade")
CATransaction.commit()Verificação rápida: animações
Teste sua compreensão sobre animações implícitas e explícitas.
Recapitulação: animações implícitas e explícitas
Layers independentes são animadas implicitamente por meio de ações quando propriedades animáveis mudam; layers associadas a visualizações desativam esse comportamento e usam UIView.animate. CABasicAnimation e CAKeyframeAnimation explícitas animam o valor de apresentação, portanto atualize o valor de modelo para preservar os resultados.
Ajuste o movimento com funções de temporização, agrupe alterações em CATransaction e use blocos de conclusão para tarefas posteriores.
Perguntas Frequentes
A aula “Animações Implícitas e Explícitas” é grátis?
Sim — o texto completo de “Animações Implícitas e Explícitas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.
O que vou aprender em “Animações Implícitas e Explícitas”?
Anime propriedades de camadas com CABasicAnimation. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Swift Academy?
Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Animações Implícitas e Explícitas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Swift Academy?
Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos de CALayer
- Animações Implícitas e Explícitas
- Transformações e Efeitos 3D
- Desenho Personalizado com Core Graphics