Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ScrollView中的SwiftUI动画不工作_Ios_Swift_Swiftui_Ios13 - Fatal编程技术网

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。