iosswiftuiios-animationsdynamic-islandactivitykit

Dynamic Island SwiftUI Animations


How can I implement swiftUI animations on a dynamic island icon? I want to do this:

DynamicIsland() { ... } 
compactLeading: {
  Image("my-icon").shineEffect()
} compactTrailing: {
  Image("my-icon")
} 

Where in shine effect I start the animation on onAppear:

func body(content: Content) -> some View {
  content
    .onAppear() { 
      startAnimation()
    }
}

In the main app it works, but in the dynamic island it doesn't.


Solution

  • The documentation explicitly states that standard animations don‘t work. You can only animate content-state update using

    built-in transitions: opacity, move(edge:), slide, push(from:), or combinations of them. Additionally, request animations for timer text with numericText(countsDown:).