列表视图可提前创建所有详细信息视图

时间:2019-10-18 06:38:13

标签: swiftui

我有一个列表视图,其中的项目可以选择以显示该项目的详细视图,如下所示:

NavigationView {
  List {
    ForEach(items) { item in
      NavigationLink(destination: DetailView(item: item)) {
        DetailRow(item: item)
      }
    }
  }
}

显然,创建列表视图时会创建所有详细视图。从性能和内存使用的角度来看,我认为这是有问题的。我宁愿有一个详细视图对象,然后在选择特定项目时为其设置项目值。

但是我不知道该怎么做。还是上述方法真的是一个很好的实现?

1 个答案:

答案 0 :(得分:3)

SwiftUI确保事情高效。无需担心。至少在这个简单的例子中没有。 (this WWDC talk中最后提到的高级动画可能需要进行优化。)

SwiftUI代码是一种结构规范,可以在运行时进行分析和执行。因此,您的假设“在创建列表视图时将创建所有详细信息视图”。

您可以了解有关here的信息。

因此,您的代码是完美无缺的。