SwiftUI 移动到 Swift 包管理器时动画中断

SwiftUI Animation breaks when moved to Swift Package Manager

我想在 SwiftUI 中实现一个文本动画并制作一个视图,归结为如下所示:

public struct AnimatedTextView: View, Animatable {

    public var number: CGFloat

    public init(number: CGFloat) {
        self.number = number
    }

    public var animatableData: CGFloat {
        get { number }
        set { number = newValue }
    }

    public var body: some View {
        Text("\(Int(number))")
    }
}

此动画在主应用程序目标中运行良好,但当我将其移至 SPM 包时,动画中断:

有没有人遇到过这个问题并且知道解决方法?

(重现问题的完整项目:https://www.dropbox.com/s/e1yrzszxlgkk0p0/AnimationRepro.zip

看来这个问题与包内的代码无关,而实际上与 iOS 版本有关。

我已将您应用的 iOS 部署目标 降低到 iOS 14,并且动画显示为在 App 模块 中也被破坏。然后,我再次将它撞到 iOS 15,并且还更新了包的 Package.swift 以使其至少为 iOS 15 和动画在这两个方面都做得很好。 (确保在更新最低版本后清理构建项目)

因此 increment/decrement 动画似乎是 iOS 15 中的新内容。您可能需要提高整个应用程序(包括软件包)的最低版本,或者在需要较低版本时实现具有相同行为的自定义动画。