Utilizando Transições Numéricas com contentTransition(.numericText()) em SwiftUI.
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()
}
}
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(_:)