当我的视图控制器的视图出现时,我希望其集合视图中的所有单元格水平翻转。
如何才能做到这一点?我查看了 UIDynamics 并没有找到翻转动画。我有一个使用 Core Animation 的动画,它会翻转一个视图,但我不知道如何将它应用于单元格。
当我的视图控制器的视图出现时,我希望其集合视图中的所有单元格水平翻转。
如何才能做到这一点?我查看了 UIDynamics 并没有找到翻转动画。我有一个使用 Core Animation 的动画,它会翻转一个视图,但我不知道如何将它应用于单元格。
您可以在 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;
进入更新块。