我尝试使用按钮将 ScrollView 设置为最顶部的元素。因此,新的.scrollPosition()修饰符应该会派上用场。我无法让它工作。在以下示例中,当单击堆栈底部的项目或按钮时,滚动将起作用。但滚动时该值不会更新。您可以通过滚动到底部、单击“滚动到顶部”按钮并向下滚动来重现该行为。第二次,什么也没有发生,因为值仍然是 1。我做错了什么,还是我对修饰符的期望错误?文档是这样说的: https://developer.apple.com/documentation/swiftui/view/scrollposition(id:anchor:)
//\n// ContentView.swift\n// Test\n//\n// Created by Sebastian G\xc3\xb6tte on 23.09.23.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n \n @State private var scrollViewPosition: Int?\n \n var body: some View {\n ScrollView(.vertical) {\n VStack(spacing: 32) {\n ForEach(1..<21) { item in\n Text("I am item no. \\(item)")\n .id(item)\n \n .frame(maxWidth: .infinity)\n .padding()\n .background(.purple)\n .cornerRadius(4)\n \n .onTapGesture {\n withAnimation {\n scrollViewPosition = item\n }\n }\n }\n \n Button("Scroll to top", action: {\n withAnimation {\n scrollViewPosition = 1\n }\n })\n }\n .scrollTargetLayout()\n …Run Code Online (Sandbox Code Playgroud) swiftui ×1