Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

sebj/swiftui-animate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎞 Animate

No longer necessary: see the keyframeAnimator view modifier (and its variants) introduced at WWDC 2023.


MIT License

A concept to more easily define simple keyframe / multi-step animations in SwiftUI, without:

  • Defining an @State value for each property to be animated
  • Using asyncAfter

The approach has gone through a few very different iterations (see commit history), but there's still room for improvement. PRs and discussion are welcome!

Example Usage

struct ContentView: View {
    var body: some View {
        VStack {
            Image(systemName: "globe")
                // This animation will start as soon as the view appears.
                .animate(
                    .start {
                        $0.opacity = 0.5
                    },
                    .at(2) {
                        $0.opacity = 1
                        $0.offsetY = 50
                        $0.scale = 1.5
                    }
                )
        }
    }
}

Minimum Requirements

  • iOS 15 / macOS 12 / tvOS 15 / watchOS 8
  • Swift 5.7 (Xcode 14)

License

This library is released under the MIT license. See the LICENSE file for more information.

To-Do

  • Improve documentation
  • Support for animation of arbitrary properties (via closure?)

Notes

About

A concept to more easily define simple keyframe / multi-step animations in SwiftUI

Topics

Resources

License

Stars

Watchers

Forks

Languages