Ios ScrollView中的SwiftUI动画不工作
我就是想不通。我有一个简单的动画作品完美。但是当我将视图包装成滚动视图(通过取消注释这两行)时,它就不再有动画了?有人知道线索吗Ios ScrollView中的SwiftUI动画不工作,ios,swift,swiftui,ios13,Ios,Swift,Swiftui,Ios13,我就是想不通。我有一个简单的动画作品完美。但是当我将视图包装成滚动视图(通过取消注释这两行)时,它就不再有动画了?有人知道线索吗 import SwiftUI struct ContentView: View { @State var offset = CGSize(width: 0, height: 0) var body: some View { // ScrollView { VStack(spacing: 50) {
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错误或是我仍然无法理解的东西。我尝试了你的代码,它在模拟器中运行良好。当矩形包含在ScrollView中时,它将设置动画。我注意到的唯一区别是按钮和矩形位于屏幕顶部而不是中间。@Andrew copy粘贴问题中的代码我也有同样的iTukker问题:如果动画在ScrollView中,动画将无法工作。您使用的是哪个xCode版本?@superpuccio xCode 11.1,在模拟器和预览中都试用过,效果很好。@Andrew我也在使用那个版本。很奇怪。我也有同样的iTuker问题,我也在使用Xcode 11.1,但没有成功@superpuccio的回答成功了,我接受这个答案。仍然在学习SwiftUI,并且已经偶然发现了我的第一部动画。这就成功了,thanx。但我仍然认为这似乎是一个bug。