SwiftUI 中的 List 是不是复用类似于 UITableView 的单元格?
Posted
技术标签:
【中文标题】SwiftUI 中的 List 是不是复用类似于 UITableView 的单元格?【英文标题】:Does the List in SwiftUI reuse cells similar to UITableView?SwiftUI 中的 List 是否复用类似于 UITableView 的单元格? 【发布时间】:2019-06-18 18:57:12 【问题描述】:我正在使用 SwiftUI 创建一个动态列表。 SwiftUI List
容器是否重用了类似于UITableView
的单元格?
【问题讨论】:
你为什么要问?我认为SwiftUI
承诺表现出色;是否以这种特定方式重用视图是一个实现细节。
检查内存图——确实如此
很抱歉插话,但我只是链接到这个问题,因为似乎其他人可能想知道一些接近的事情。我专注于“动态”——状态(所以将“at 符号”解释为用户!)、数组更新等——实际上问题可能更关注“可重用”。我说(至少现在)别说了。 @Matteo_Pacini 已经给出了很多关于 SwiftUI 和 Combine 的 great 答案。也许他可以再给出一个?我肯定会赞成。
查看这两个答案以获取有关此主题的更多信息:***.com/a/56652113/5623035 - ***.com/questions/56654877
【参考方案1】:
是的,List
正在重用它的 ListCoreCellHost
s,就像 UITableView
重用它的 UITableViewCell
s 一样。
参考:
使用 Xcode 调查内存使用情况表明,当项目的数量超过 List
可以同时出现时,它会尽可能多地显示并在它们从顶部或底部被遮挡时重用它们list
.
通过跟踪单个单元内存地址,您可以看到它被反复重用。
另一个令人兴奋的消息是ListCoreCellHost
使用了一个托管视图,它可能在内部引用UIKit
。 (不知道,因为它缺乏文档)
【讨论】:
以上是关于SwiftUI 中的 List 是不是复用类似于 UITableView 的单元格?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - 如何将文本视图与另一个文本视图垂直对齐,以制作类似于正确对齐的表格?