預(yù)加載(TableView或者CollectionView):在用戶閱讀了最新頁(yè)碼數(shù)據(jù)的70%時(shí)(根據(jù)實(shí)際情況調(diào)節(jié)),進(jìn)行下一頁(yè)數(shù)據(jù)的加載碧聪。這樣在用戶閱讀完已加載的時(shí)候,應(yīng)用已經(jīng)在加載下一頁(yè)數(shù)據(jù)了。在強(qiáng)網(wǎng)下洞难,新的一頁(yè)數(shù)據(jù)應(yīng)該已經(jīng)得到了,用戶也就不用再進(jìn)行一次上拉的操作揭朝。scrollViewDidScroll方法中處理預(yù)加載队贱。
值得注意的是每次預(yù)加載時(shí),70%這一數(shù)字不應(yīng)該是下面的ratio
let current = scrollView.contentOffset.y + scrollView.frame.size.height
let total = scrollView.contentSize.height
let ratio = current / total
比如在cell的size都相同時(shí)潭袱,一頁(yè)數(shù)據(jù)有10個(gè)柱嫌,第一頁(yè)在用戶看到10 * 70% = 7的時(shí)候加載,這是正確的屯换,但是在第二頁(yè)時(shí)编丘,如果20 * 70% = 14的時(shí)候加載与学,也就是說(shuō),第二頁(yè)在看了4個(gè)的時(shí)候加加載了嘉抓,再往下到第4頁(yè)的時(shí)候索守,40 * 70% = 28,在第3頁(yè)還沒(méi)看完的時(shí)候抑片,就去加載第5頁(yè)卵佛,但是第4頁(yè)還沒(méi)看,這不是我們想要的敞斋。我們想要的是在看第二頁(yè)的時(shí)候看到第17個(gè)是加載截汪,第3頁(yè)在加載27的時(shí)候加載。