SwiftUI测试版7:添加项目后触发“列表”滚动吗?

时间:2019-09-06 08:53:59

标签: swift xcode 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")
  }
}

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

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

1 个答案:

答案 0 :(得分: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)