Utilizando Transições Numéricas com contentTransition(.numericText()) em SwiftUI.

Lucas Baggiotto
Apple Developer Academy | Mackenzie
2 min readJun 17, 2024

--

O método .contentTransition(_:) permite com que views sejam animadas de acordo com a mudança do conteúdo delas. Neste artigo, irei mostrar o código necessário para implementar esse efeito.

Tutorial

Primeiramente vamos criar uma nova view do SwiftUI, e adicionar uma view de Texto.

import SwiftUI

struct ContentView: View {
var body: some View {
VStack {
Text("0")
}
.padding()
}
}
A tela ficará assim

Agora criaremos uma variável de estado com o Property Wrapper @State, para armazenar o número que será mostrado na tela.

import SwiftUI

struct ContentView: View {
@State var number = 0
var body: some View {
VStack {
Text("\(number)")
}
.padding()
}
}

Adicionaremos um botão que altera aleatóriamente o número entre 0 e 1000, para demonstrar a animação de transição:

Button {
withAnimation {
number = Int.random(in: 0...1000)
}
} label: {
Text("Randomizar")
}.buttonStyle(.borderedProminent)

Note que a lógica de alterar o número está dentro de um withAnimation{}, o que ativa a animação de transição numérica.

Pronto! Agora cada vez que o número for alterado, ele ativará a animação de transição de texto.

Recursos

https://developer.apple.com/documentation/swiftui/view/contenttransition(_:)

--

--

Lucas Baggiotto
Apple Developer Academy | Mackenzie

iOS Developer Apple Developer Academy | Mackenzie i love music, art and computers