Skip to main content

How to delay an animation

About 2 minSwiftSwiftUIArticle(s)bloghackingwithswift.comcrashcourseswiftswiftuixcodeappstore

How to delay an animation 관련

SwiftUI by Example

Back to Home

How to delay an animation | SwiftUI by Example

How to delay an animation

Updated for Xcode 15

When you create any animation – implicitly, explicitly, or with bindings – you can attach modifiers to that animation to adjust the way it works. For example, if you want an animation to start after a certain number of seconds you should use the delay() modifier.

As an example, this creates a red rectangle that, when tapped, will rotate by 360 degrees using a two-second animation with a one-second delay:

struct ContentView: View {
    @State var rotation = 0.0

    var body: some View {
        Rectangle()
            .fill(.red)
            .frame(width: 200, height: 200)
            .rotationEffect(.degrees(rotation))
            .animation(.easeInOut(duration: 3).delay(1), value: rotation)
            .onTapGesture {
                rotation += 360
            }
    }
}

Download this as an Xcode projectopen in new window

Similar solutions…
How to start an animation immediately after a view appears | SwiftUI by Example

How to start an animation immediately after a view appears
How to create an explicit animation | SwiftUI by Example

How to create an explicit animation
How to create a spring animation | SwiftUI by Example

How to create a spring animation
How to run a completion callback when an animation finishes | SwiftUI by Example

How to run a completion callback when an animation finishes
How to show a menu when a button is pressed | SwiftUI by Example

How to show a menu when a button is pressed

이찬희 (MarkiiimarK)
Never Stop Learning.