2

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

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

我找到了一个

tableView.isDecelerating

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

4

2 回答 2

9

这对我有用(在 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;
于 2012-11-13T06:28:11.300 回答
1

如果您的目标是 iOS >=5,您可以获得底层UIPanGestureRecognizer,然后询问它的速度

CGPoint velocity = [tableView.panGestureRecognizer velocityInView:tableView];
于 2012-08-29T09:49:33.790 回答