我在SwiftUI还是新手.我想知道如何使我的ScrollView像List一样更灵活.你可以看到列表中的项目,它甚至只有在项目出现在屏幕上时才会触发,所以它可以更好地提高我的应用程序性能,但我不喜欢列表的外观,我想用ScrollView作为替代.我可以复制这个功能吗?

 struct Content: View {
  let tempoList: [String] = ["Mark", "Bill", "John", "Jeff", "Andrew"]
  var body: some View {
    List(tempoList, id: \.self) { _ in
        ForEach(tempoList, id: \.self) { name in
            Text("\(name)")
                .onAppear {
                    print(name)
                }
        }
    }
   }
  }

推荐答案

使用"懒惰"容器来实现这一点.

    ScrollView {
        LazyVStack { //this
            ForEach(0...100, id: \.self) { index in
                Text("\(index)")
                    .onAppear {
                        print(index)
                    }
            }
        }
    }

Swift相关问答推荐

如何在Swift 中创建移动的uil标签?

如何访问用户选定目录下的(只读)文件?

避免嵌套导航TabView

阻塞(受CPU限制的)任务的异步功能?

如何在SWIFT Memory中处理对VAR数组的更新(对COW感到困惑)

如何在SwiftUI中做出适当的曲线?

如何增加 NSStatusBar 图像大小?

Swift计时器未触发

从 Obj-C 函数返回 swift 类的不兼容指针类型

带有可选字符串作为键路径的 SwiftUI iOS16 表

是否可以利用 Codable 从 Dictionary 初始化符合类型

If 语句在 Swift 中有 2 个日期

Swift Combine:如何在保留发布者结果顺序的同时进行收集?

UIButton 配置不更新按钮标题

如何更改任务栏 colored颜色 和 sf 符号 colored颜色 ?

Swift UI 不重绘 NSViewRepresentable 包装的文本字段

我们如何显示关于 UITextField 是 xCode Swift 的建议?

快速在 LLDB 中使用 po

在 Swift 中指定 UITextField 的边框半径

应用程序包不包含有效标识符