我必须填充一个包含大量项目的TableView(20.000项目frol sqlite),但我知道我会超载它。 有没有办法在scolling时只加载所需的数据?
例如,如果我在滚动100时显示100个项目,我应该在表格中加载200还是仅加载项目101> 200?
还可以将Cell内容返回到嵌入式sqlite DB中的EACH元素吗?
由于
答案 0 :(得分:0)
我必须填充一个包含大量项目的TableView(20.000项目frol sqlite),但我知道我会超载它。有没有办法在滚动时只加载所需的数据?
UITableView
专门用于加载可见的单元格。你不是那么多"填充"通过表格的数据源将数据提供给表格的表格。当表格滚动时,它会向其数据源询问其他单元格,并重新使用不再可见的单元格。这可以最大限度地减少内存使用并最大化速度除了在视图控制器(或其他一些对象)中实现必要的表视图数据源和委托方法之外,您不需要做任何事情来实现此目的。
还可以将Cell内容返回到嵌入式sqlite DB中的EACH元素吗?
当然,你可以做到。只需实现-tableView:cellForRowAtIndexPath:
方法,即可为所请求的单元格进行相应的SQLite查询。
答案 1 :(得分:0)
这是UITableView的默认功能,它只在需要显示时绘制必要的行。这就是为什么你有可重复使用的细胞"因为他们不断被重用。我认为存储20,000个项目不应该是可怕的内存开销,所以我只是尝试使用UITableView默认功能,你会没事的。