我在TableView中有数千个部分,我使用titleForHeaderInsection
给每个部分一个标题。但是我发现当初始化TableView时,这个方法将被调用数千次以给每个部分一个标题。这是否意味着我每次应该设置几个部分?
答案 0 :(得分:1)
Tableview适用于可重用性的概念,因此只创建了几个可见的,并且在休息之后所有都被重用,因此无需担心它。
休息请参阅此链接:Apple官方链接:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html
答案 1 :(得分:1)
不,你没必要。
内存针对此类场合进行了优化,因此如果您的数据源设置正确且包含数据(无论其大小),UI应该安全地处理它。
例如,iOS应用程序中的UITableView仅呈现当前显示的那些单元格。例如,iPhone 6上的常见tableview一次显示大约15行。作为用户,当您向下(或向上)向下滚动(或向上)表格视图时,每次显示特定单元格之前,都会调用方法cellForRow并从数据源中获取数据。
这也适用于各个部分。
但是,如果您的数据不必存储在App捆绑包中,最好的方法是异步获取源数据,例如,在启动应用程序后,您从服务器获取30行。然后,如果您到达(通过滚动)第30行,您的应用程序将从服务器请求更多数据并更新表格。 因此,不会滚动tableView的用户不会下载所有数据,也不会使用大数据传输。
作为结论,我要提一下,对于所有情况,较小的数据源,对应用程序的性能更好。
答案 2 :(得分:0)
浏览Uitableview数据源方法的生命周期,因为每个部分和行都会调用每个方法。如果将section方法调用千次,那就完全没问题了。如果你有任何问题,那么添加一个分页,如加载前10个部分,然后加载其他10个部分,然后继续。