有一个tablview列表, 打算显示类似通讯录的联系人列表, 右边是A-Z的导航, 可能数据量太大。假如一次从api返回10000个信息, 我的疑问是, 一次初始化10000个cell, 可行吗? 因为数据太多了, 本来想分页读取, 但是这种显示方式, 用分页不太合适。 或者有什么思路?
有一个tablview列表, 打算显示类似通讯录的联系人列表, 右边是A-Z的导航, 可能数据量太大。假如一次从api返回10000个信息, 我的疑问是, 一次初始化10000个cell, 可行吗? 因为数据太多了, 本来想分页读取, 但是这种显示方式, 用分页不太合适。 或者有什么思路?
看一下第19、20题吧:http://www.henishuo.com/ios-interview-middle-two/
一次那么多条数据肯定是不行的。因为tableview是继承于scrollview的,而这个是需要计算通过得到contentsize的,所以有多少条数据作为数据源,就会计算多少次行高,那么就会很卡,或者说第一次出现需要等待好久。
建议:第一次只加载少量数据,比如10条、20条。然后将高度缓存下来,那么即使有10000条,当高度都缓存过了以后,也不会出现卡(富文本特别多的除外)。
看下文章中的如何自动计算并缓存行高吧!
2 回答1.1k 阅读
1 回答993 阅读✓ 已解决
1 回答2.7k 阅读
1 回答1.4k 阅读
1.7k 阅读
1 回答1.1k 阅读
1.3k 阅读
首先系统tableView的cell是有重用机制的,按照标准的套路写出来也不是一次性初始化10000个cell,如果cell都是一样的布局等等,只是内容不一致,只会存在你屏幕显示范围中的这几个cell