我试图覆盖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
。
你知道如何处理吗?
答案 0 :(得分:0)
解决了,我不得不在textFieldShouldReturn方法中使用batchUpdate而不是reloadData。