gpt4 book ai didi

ios - ScrollView 中的 SwiftUI 动画不起作用

转载 作者:行者123 更新时间:2023-12-01 15:35:49 25 4
gpt4 key购买 nike

只是无法理解这一点。我有一个简单的动画,效果很好。但是,当我将 View 包装到 ScrollView(通过取消注释 2 行)时,它不再动画了?有人有线索吗?

import SwiftUI

struct ContentView: View {
@State var offset = CGSize(width: 0, height: 0)

var body: some View {
// ScrollView {
VStack(spacing: 50) {
Rectangle()
.frame(width: 100, height: 100)
.offset(self.offset)
Button(action: {
withAnimation {
self.offset.width += 66
}
})
{
Text("Animate me")
}
}.frame(width: 300)
// }
}
}

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

最佳答案

我已经注意到这种行为。问题似乎是显式动画。如果您使用隐式动画,它可以工作:

struct ContentView: View {
@State var offset = CGSize(width: 0, height: 0)

var body: some View {
ScrollView {
VStack(spacing: 50) {
Rectangle()
.frame(width: 100, height: 100)
.offset(self.offset)
.animation(.linear)
Button(action: {
self.offset.width += 66
})
{
Text("Animate me")
}
}.frame(width: 300)
}
}
}

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

我还没有找到原因,所以把它当作一种解决方法。这可能是一个 SwiftUI 错误或我仍然无法理解的东西。

关于ios - ScrollView 中的 SwiftUI 动画不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58571221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com