iOS开发实训第十周周报
学习知识点归纳
1、加载策略
根据总行数,列表总高度,列表当前偏移值这三个数字决定是否要加载,这里自定义一个 Protocol判断是否需要进行加载;
protocol ListPrefetcherStrategy {
var totalRowsCount:Int { get set }
func shouldFetch(_ totalHeight:CGFloat, _ offsetY:CGFloat) -> Bool
}
常见的预加载策略有:
(1)阈值策略:假定预先设置阈值70%,每页有10个数据,第一页在加载到 7 个时进行预加载,第二页在第 17 个时进行预加载,此时阈值为 85%,而如果还是 70%,则会在第 14 个时进行预加载。所以这里的阈值需要动态增长,该策略适用于我们知道有多少内容,且每页数据均匀分布;
(2)剩余策略:定当列表剩余未展示行数即将少于某个值时,进行加载。这种适合每次分页数量不一定一致的情况;
(3)除法策略:自己定义除数和余数,每当达到余数时,进行加载;
2、UITableView上预加载数据
这里使用了阈值策略,当浏览到80%的数据时,调用getData,异步地加载数据;
- (void)tableView:(UITableView