SwiftUI beta 7:添加项目时触发“List”滚动?

Saj*_*jon 6 xcode swift swiftui xcode11

使用 Xcode 11 beta 7 和 Catalina beta 19A536g(6?)

在我的 SwiftUI 应用程序中,我有一个带有列表的简单视图。在列表下方,我有一个按钮可以将项目添加到列表中。

添加一些项目后,新添加的项目不可见,因为它们超出了列表的内容大小。

var body: some View {
  NavigationView {
    VStack {
      List(self.accounts) { account in
        Text("\(account.name)")
      }

      Button("Add new account") {
        self.addNewAccount()
      }
    }.navigationBarTitle("Select account")
  }
}
Run Code Online (Sandbox Code Playgroud)

我想我想要一些绑定列表的内容偏移量,传递给我的方法addNewAccount并触发列表的滚动。

我可以以某种方式以编程方式触发列表向下滚动到新内容吗?

Ale*_*yam 0

实现它的最简单的方法是翻转列表及其内容,.scaleEffect(x: 1, y: -1, anchor: .center)以便获得一个颠倒的结构化列表,但内容看起来正确,因此,在列表中索引 0 处插入项目将在底部执行,效果很好看动画

List {
   ForEach(self.content) { itemContent in
       Item(itemContent).scaleEffect(x: 1, y: -1, anchor: .center)   
   }
}.scaleEffect(x: 1, y: -1, anchor: .center)
Run Code Online (Sandbox Code Playgroud)