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 中的新内容。您可能需要提高整个应用程序(包括软件包)的最低版本,或者在需要较低版本时实现具有相同行为的自定义动画。
我想在 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 中的新内容。您可能需要提高整个应用程序(包括软件包)的最低版本,或者在需要较低版本时实现具有相同行为的自定义动画。