我有一个UITableView,它从数据库中检索一些预取相对昂贵的数据.为了解决这个问题,我使用了LazyTableImages示例代码中的设计思想,在滚动结束时使用获取可见行的数据[UITableView visibleCells].
这在性能方面效果很好,但它有两个我想解决的交互问题:
scrollViewDidEndDecelerating)之前,不会加载数据.因此,如果我在列表中缓慢滚动,我必须停止滚动以将数据加载到那些可见单元格中.理想情况下,如果滚动速度很慢,我会将数据加载到单元格中.有一种优雅的方式来实现这一目标吗?我觉得我可能会错过这个问题的常见设计模式.
我认为您可以在滚动开始时开始加载数据,这样您就不必等待滚动结束.您可以使用以下两种方法之一:
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{}
而且你总是可以得到明显的细胞的指标,所以我想你应该能够装载一对夫妇更多的数据,而不是仅仅可见的细胞.
// called on finger up if the user dragged. decelerate is true if it will continue moving afterwards
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if (!decelerate)
    {
        //fetch data for visible rows
    }
}
| 归档时间: | 
 | 
| 查看次数: | 4091 次 | 
| 最近记录: |