をオーバーライドしようとしていますが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れません。
それを処理する方法はありますか?