Home > AI > IOS > SwiftUI >

AnimatableModifier

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
struct ContentView: View {
    @State private var number = 0
 
    var body: some View {
        VStack {
            Text(String(number))
                .modifier(NumberView(number: number))
 
            Button("Animate") {
                withAnimation(Animation.easeInOut(duration: 2)) {
                    number = 100
                }
            }
        }
    }
}
 
 
struct NumberView: AnimatableModifier {
    var number: Int
 
    var animatableData: CGFloat {
        get { CGFloat(number) }
        set { number = Int(newValue) }
    }
 
    func body(content: Content) -> some View {
        Text(String(number))
    }
}

Leave a Reply