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

标签 ios swift swiftui ios13

只是无法理解这一点。我有一个简单的动画,效果很好。但是,当我将 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/

相关文章:

ios - 自定义 UIImagePickerController 以具有白色边框

ios - WKWebView 不显示导航栏

ios - 什么 _ :_: and similar combinations of the colon and underscore mean in Swift?

ios - 在 UIWebView 上使用 swift 2 进行 POST 不起作用

iOS:选择查询在某些设备上返回不同的结果

ios - 如何在 iOS 上使用 Xamarin 旋转文件中的图像

ios - “CGPointMake”在 swift 中不可用

ios - 视频预览期间的屏幕截图失败

ObservedObject 更改时 SwiftUI View 未更新

ios - 更改NavigationView标题SwiftUI的颜色