0Pricing
Swift Academy · Aula

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.0

Propriedades 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.cgColor

Açõ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

  1. Fundamentos de CALayer
  2. Animações Implícitas e Explícitas
  3. Transformações e Efeitos 3D
  4. Desenho Personalizado com Core Graphics
← Voltar para Swift Academy