UITableView获得滚动速度

时间:2012-08-29 09:44:43

标签: cocoa-touch uitableview

我有带有图像的表格单元格,我希望它们一旦滚动速度下降到阈值就开始加载

但是,如何确定UITableView的当前滚动速度?

我找到了

tableView.isDecelerating

但是我想加载图像,当滚动速度很慢时

2 个答案:

答案 0 :(得分:8)

这对我有用(在cellForRowAtIndexPath回调中)。如果速度低于1000像素/秒,我会加载图像:

static double prevCallTime = 0;
static double prevCallOffset = 0;

//Simple velocity calculation
double curCallTime = CACurrentMediaTime();
double timeDelta = curCallTime - prevCallTime;
double curCallOffset = self.tableView.contentOffset.y;
double offsetDelta = curCallOffset - prevCallOffset;
double velocity = fabs(offsetDelta / timeDelta);
NSLog(@"Velocity: %f", velocity);
prevCallTime = curCallTime;
prevCallOffset = curCallOffset;

答案 1 :(得分:1)

如果你的目标是iOS> = 5,你可以得到基础的UIPanGestureRecognizer,然后问它的速度

CGPoint velocity = [tableView.panGestureRecognizer velocityInView:tableView];