奇怪的UICollectionViewFlowLayout重写行为

时间:2012-10-28 21:55:28

标签: ios ios6 uicollectionview uicollectionviewlayout

我试图覆盖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时,会调用reloadDataReloadData始终会重新初始化布局,因此会一次又一次地调用prepareLayout,并且永远不会调用prepareForCollectionViewUpdates

你知道如何处理吗?

1 个答案:

答案 0 :(得分:0)

解决了,我不得不在textFieldShouldReturn方法中使用batchUpdate而不是reloadData。