Ios6 在iOS中设置集合视图单元格的动画

Ios6 在iOS中设置集合视图单元格的动画,ios6,ios7,core-animation,uicollectionview,uicollectionviewcell,Ios6,Ios7,Core Animation,Uicollectionview,Uicollectionviewcell,当我的视图控制器的视图出现时,我希望其集合视图中的所有单元格水平翻转 如何做到这一点?我查看了UIDynamics,没有找到翻转动画。我有一个使用核心动画的动画,它将翻转视图,我不知道如何将其应用于单元格。您可以在UICollectionViewFlowLayout的子类中使用此方法: - (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)it

当我的视图控制器的视图出现时,我希望其集合视图中的所有单元格水平翻转


如何做到这一点?我查看了UIDynamics,没有找到翻转动画。我有一个使用核心动画的动画,它将翻转视图,我不知道如何将其应用于单元格。

您可以在UICollectionViewFlowLayout的子类中使用此方法:

- (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath
{
    UICollectionViewLayoutAttributes *layoutAttributes = [super initialLayoutAttributesForAppearingItemAtIndexPath:itemIndexPath];

    CATransform3D transform = CATransform3DMakeRotation(DEGREES_TO_RADIANS(180.0), 0.0, 1.0, 0.0);
layoutAttributes.transform3D = transform;

    return layoutAttributes;
}
这基本上就是获取collectionViewCell的初始布局属性,并将其水平翻转。在插入单元时,flowLayout将从这些初始属性到该单元的原始属性执行线性动画。如果调用,将调用此方法

- (void)performBatchUpdates:(void (^)(void))updates completion:(void (^)(BOOL finished))completion;
并使用

- (void)insertItemsAtIndexPaths:(NSArray *)indexPaths;
进入更新块