【发布时间】:2020-11-23 15:44:01
【问题描述】:
我想在文本视图上使用弹簧动画,但动画改变了这个视图不必要的东西,这使得某些部分因为这个问题/错误而被剪掉。为了保守起见,我制作了一个带有背景颜色的精确文本视图,另一个没有!如您所见,弹簧动画应该只使用 View 的位置或偏移量,而不是框架的大小! 或者可能是因为在位置相同的情况下改变了偏移量。我坚信这是一个错误。我可以让我自己的自定义弹簧动画效果比这更好,但我想知道有什么办法可以解决这个问题吗?
PS:我发现 Text 上的各种动画都有这个问题!
struct ContentView: View {
@State var stringForText: String = String()
var body: some View {
Button("add") { stringForText += "?"}.padding()
Text(stringForText).font(.largeTitle).bold().padding().animation(.spring(response: 1, dampingFraction: 0.01, blendDuration: 1))
Text(stringForText).font(.largeTitle).bold().background(Color.yellow).padding().animation(.spring(response: 1, dampingFraction: 0.01, blendDuration: 1))
}
}
【问题讨论】:
-
你看到弹簧动画应该只使用 View 的位置或偏移量 - 这个假设是不正确的。隐式动画应用于所有动画属性。在考虑的情况下,位置和大小(即实际框架)并且它们按预期从较小的矩形到较大的矩形(带有弹簧)进行动画处理。内容,即内部文本,是不可动画的。从您的帖子中,您还不清楚您真正想要实现什么。
标签: swiftui