我正在使用 SwiftUI 创建动态列表。 SwiftUI
List
容器是否重用类似于 UITableView
的单元格?
💡这个答案最初是为 SwiftUI 1 编写的,但对于最新的 SwiftUI 版本来说它仍然是正确的,只是它现在在下面使用
。UICollectionView
✅ 是的,
List
正在重复使用它的ListCoreCellHost
,就像UITableView
重复使用它的UITableViewCell
一样。
参考:
使用 Xcode 调查内存使用情况表明,当项目数量超过
List
可以同时显示的数量时,它只会显示尽可能多的内容,并在它们从 list
的顶部或底部被遮挡时重用它们
.
通过跟踪单个单元内存地址,您可以看到它被一遍又一遍地重用。 另一个令人兴奋的消息是
ListCoreCellHost
使用的托管视图可能在内部引用 UIKit
。 (不太了解,因为缺乏文档)