1

我有一个水平的 UITableView,我想在其中设置分页距离。我试过这种方法,

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    _tableView.decelerationRate = UIScrollViewDecelerationRateFast;
    CGFloat pageSize = 320.f / 3.f;
    CGPoint contentOffset = _tableView.contentOffset;
    contentOffset.y = roundf(contentOffset.y / pageSize) * pageSize;
    [_tableView setContentOffset:contentOffset animated:YES];
}

当您缓慢滚动并松开时,此方法有效,但如果您快速滚动,则会出现很多弹出。所以在与它搏斗了一会儿之后,我正在尝试一种不同的方法......

我只是在 tableView 上启用分页,然后将表格的宽度设置为我想要的分页大小(屏幕宽度的 3 分之一)。我还设置了 clipsToBounds = NO。当我使用这种方法时,滚动按预期工作,但现在我较小的表格宽度之外的单元格不会绘制。我想要的是强制绘制当前单元格左侧和右侧的单元格,即使它们位于 UITableView 的框架之外。我知道 cellForRowAtIndexPath 是从更深层次调用的,但是有什么方法可以让我自己为我选择的单元格触发它吗?

我试过用,

[[_tableView cellForRowAtIndexPath:indexPath] setNeedsDisplay];

但它什么也没做gggggg!

4

0 回答 0