【问题标题】:SwiftUI beta 7: Trigger `List` to scroll when item added?SwiftUI beta 7:添加项目时触发“列表”滚动?
【发布时间】:2020-01-09 03:23:36
【问题描述】:

使用 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 并触发列表的滚动。

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

【问题讨论】:

  • 我记得以前有人问过这个问题。对“[swiftui] list scroll”的搜索出现了这个问题——因为答案未被接受,它可能会有所帮助——如果没有帮助,可能是目前不可能:stackoverflow.com/questions/57258846/…跨度>

标签: swift xcode swiftui xcode11


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多