SwiftUI 测试版 7:添加项目时触发"列表"滚动?



使用 Xcode 11 beta 7 和 Catalina beta19A536g(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并触发列表的滚动。

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

实现它的最简单方法是使用.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)

最新更新