Can I draw UITableViewCells that are outside the UITableView's frame?

487 views Asked by At

I have a horizontal UITableView where I would like to set the paging distance. I tried this approach,

- (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];
}

This works when you scroll slowly and let go but if you scroll fast, there's a lot of popping. So after wrestling with it for a bit, I'm trying a different approach...

I'm simply enabling paging on the tableView and then setting the width of the table to my desired paging size (a 3rd of the screen's width). I also set clipsToBounds = NO. When I use this approach, the scrolling works as expected but now cells outside of my smaller table width do not draw. What I would like is to force the cell on the left and right of my current cell to draw, even though they are outside of the UITableView's frame. I know cellForRowAtIndexPath get's called from a deeper level but is there some way I can trigger it myself for the cell's I selected?

I've tried using,

[[_tableView cellForRowAtIndexPath:indexPath] setNeedsDisplay];

but it does nothinggggggg!

0

There are 0 answers