列表中的可重用性支持 - SwiftUI
Reusability support in List - SwiftUI
我目前正在开发一个使用 SwiftUI 的项目。我试图使用 List
来显示比方说 10 项的列表。
问题: List
是否像 UITableview
一样支持可重用性?
我浏览了多个帖子,所有帖子都说 List
支持可重用性。
但是项目的内存映射说的是另外一回事。 List
中的所有视图都是一次性创建的,不会重复使用。
编辑:
这是我创建 List
的方式
List {
Section(header: TableHeader()) {
ForEach(0..<10) {_ in
TableRow()
}
}
}
TableHeader
和 TableRow
是创建的自定义视图。
有人可以澄清一下吗?
List 实际上为可重用标识符提供了与 UITableView 相同的技术。您的代码使它像滚动视图。
正确的做法是提供项目作为迭代数据。
struct Item: Identifiable {
var id = UUID().uuidString
var name: String
}
@State private var items = (1...1000).map { Item(name: "Item \([=11=])") }
...
List(items) {
Text([=11=].name)
}
视图层次结构调试器在内存中仅显示 17 行
我目前正在开发一个使用 SwiftUI 的项目。我试图使用 List
来显示比方说 10 项的列表。
问题: List
是否像 UITableview
一样支持可重用性?
我浏览了多个帖子,所有帖子都说 List
支持可重用性。
但是项目的内存映射说的是另外一回事。 List
中的所有视图都是一次性创建的,不会重复使用。
编辑:
这是我创建 List
List {
Section(header: TableHeader()) {
ForEach(0..<10) {_ in
TableRow()
}
}
}
TableHeader
和 TableRow
是创建的自定义视图。
有人可以澄清一下吗?
List 实际上为可重用标识符提供了与 UITableView 相同的技术。您的代码使它像滚动视图。 正确的做法是提供项目作为迭代数据。
struct Item: Identifiable {
var id = UUID().uuidString
var name: String
}
@State private var items = (1...1000).map { Item(name: "Item \([=11=])") }
...
List(items) {
Text([=11=].name)
}
视图层次结构调试器在内存中仅显示 17 行