【问题标题】:Strange UICollectionViewFlowLayout overriding behaviour奇怪的 UICollectionViewFlowLayout 覆盖行为
【发布时间】:2012-10-28 21:55:27
【问题描述】:

我试图覆盖UICollectionViewFlowLayout,但我意识到一些奇怪的事情。这里可以看到一段小代码sn-p:

#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

你知道如何处理它吗?

【问题讨论】:

  • 更新:已解决,我不得不在 textFieldShouldReturn 方法中使用 batchUpdate 而不是 reloadData。

标签: ios ios6 uicollectionview uicollectionviewlayout


【解决方案1】:

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

【讨论】:

  • performBatchUpdate:completion:UICollectionView的方法调用
猜你喜欢
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 2016-09-28
相关资源
最近更新 更多