SelfSizingWaterfallCollectionViewLayout icon indicating copy to clipboard operation
SelfSizingWaterfallCollectionViewLayout copied to clipboard

Finer-grained invalidation for specific indexPaths.

Open fatuhoku opened this issue 8 years ago • 1 comments

I'm using AWPagedArray in conjunction with SelfSizingWaterfallCollectionViewLayout. Whenever a network request comes back with a page of data, I want to invalidate only those cells. Reason being, if I just invalidate the whole layout, I experience noticeable lag, disrupting the smooth scrolling experience I was aiming to achieve.

- (UICollectionViewLayoutInvalidationContext *)invalidationContextForPreferredLayoutAttributes:(UICollectionViewLayoutAttributes *)preferredAttributes withOriginalAttributes:(UICollectionViewLayoutAttributes *)originalAttributes
{
    UICollectionViewLayoutInvalidationContext *context = [super invalidationContextForPreferredLayoutAttributes:preferredAttributes withOriginalAttributes:originalAttributes];
    [context invalidateEverything];
    return context;
}

fatuhoku avatar Oct 13 '15 17:10 fatuhoku

I have since realised that:

- (UICollectionViewLayoutInvalidationContext *)invalidationContextForPreferredLayoutAttributes:(UICollectionViewLayoutAttributes *)preferredAttributes withOriginalAttributes:(UICollectionViewLayoutAttributes *)originalAttributes
{
    UICollectionViewLayoutInvalidationContext *context = [super invalidationContextForPreferredLayoutAttributes:preferredAttributes withOriginalAttributes:originalAttributes];
    [context invalidateEverything];
    return context;
}

Does absolutely nothing.

Feel free to create a pull request with your fix. I don't have the time right now. Thanks.

adamwaite avatar Oct 16 '15 12:10 adamwaite