我正在尝试覆盖UICollectionViewFlowLayout
,但我意识到一些奇怪的事情。在这里你可以看到一个小代码片段:
#import <UIKit/UIKit.h>
@interface SimpleFlowLayout : UICollectionViewFlowLayout
@end
@implementation SimpleFlowLayout
- (void)prepareLayout {
...
}
- (void)prepareForCollectionViewUpdates:(NSArray *)updateItems {
...
}
- (void)finalizeCollectionViewUpdates {
...
}
- (UICollectionViewLayoutAttributes *)
initialLayoutAttributesForAppearingItemAtIndexPath:
(NSIndexPath *)itemIndexPath {
...
}
- (UICollectionViewLayoutAttributes *)
finalLayoutAttributesForDisappearingItemAtIndexPath:
(NSIndexPath *)itemIndexPath {
...
}
@end
当一个项目被添加到 时UICollectionView
,reloadData
被调用。ReloadData
总是重新初始化布局,因此它会prepareLayout
一次又一次地调用,并且永远不会调用prepareForCollectionViewUpdates
。
你知道如何处理它吗?