0
我想在我的集合視圖佈局中實現粘性標題,但效率很高。我看着蘋果文檔,我發現UICollectionViewLayoutInvalidationContext。如何使集合視圖佈局(而不是流佈局)和UICollectionViewLayoutInvalidationContext粘滯標題?
我將此對象與自定義集合視圖佈局一起實現。我的目標是在收集視圖滾動時不要致電prepareLayout
。
我編碼的我的自定義集合視圖佈局如下:
- (BOOL) shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds{
return YES;
}
+ (Class)invalidationContextClass{
return [InvalidationContext class];
}
- (void)invalidateLayoutWithContext:(UICollectionViewLayoutInvalidationContext *)context{
NSMutableArray * indexPaths = [NSMutableArray new];
NSInteger numberOfSections = self.collectionView.numberOfSections;
for (NSInteger section = 0; section < numberOfSections; section++) {
NSInteger numberOfItemsInSection = [self.collectionView numberOfItemsInSection:section];
if (numberOfItemsInSection > 0) {
[indexPaths addObject:[NSIndexPath indexPathForRow:0 inSection:section]];
}
}
[context invalidateItemsAtIndexPaths:indexPaths];
[super invalidateLayoutWithContext:context];
}
這是我UICollectionViewLayoutInvalidationContext子類:
#import "InvalidationContext.h"
@implementation InvalidationContext
- (BOOL)invalidateEverything {
return NO;
}
@end
有人能幫助我發現什麼是錯了嗎?
注意:我的粘性標題是每個部分的第一行。我也不能使用補充視圖實現標題。
「使用補充視圖實現標題」:這是要走的路。如果您遇到問題,請提出新問題,並說明您所做的事情,您的期望以及實際發生的情況。 – shallowThought