ios - 如何从 UICollectionViewFlowLayout 为 itemSize 制作动画?

标签 ios animation uicollectionview

我正在使用 UICollectionView 在多行和多列上显示一组图形。用户可以使用pinchGesture来放大/缩小。

当用户放大时,图形尺寸会增加,而用户缩小时,图形尺寸会减小。要更改图形的大小,我只需更改 UICollectionViewFlowLayout 中的 itemSize 属性。它工作得很好,但我无法使用以下代码对更改进行动画处理:

    [UIView transitionWithView:self.theCollectionView
                  duration:0.5f
                   options:UIViewAnimationOptionCurveLinear
                animations:^() {
                    _theFlowLayout.itemSize = cellSize;
                }
                completion:nil];

知道如何动画化此更改吗?

问候,

塞巴斯蒂安。

最佳答案

您可以使用 Collection View 的 performBatchUpdates 方法,该方法将使您的布局无效并重新查询,从而为任何新值设置动画。

类似这样的:

_theFlowLayout.itemSize = cellSize;
[self.theCollectionView performBatchUpdates:nil completion:nil];

不幸的是,您无法控制动画的时间或曲线。

关于ios - 如何从 UICollectionViewFlowLayout 为 itemSize 制作动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19088861/

相关文章:

ios - 尝试添加和保存对象时 Realm 抛出错误

ios - didAnimateRoation toInterfaceorientation - 检测旋转何时完成?

Css3 背景图像动画动画太快

ios - 试图将图像从从 Firebase 加载的 UICollectionView 传递给另一个 VC

ios - 自动调整 collectionview 单元格不能以最小的行间距正确显示

iphone - iOS 自定义 UIImagePickerController 相机裁剪为正方形

ios - 如何查看使用 valueForKey 创建的 NSArray 是否为空

ios - native 布局系统正在动画化

javascript - 如何防止CSS动画在页面加载时运行

ios - Swift - 对切成两半的 UICollectionView 单元格应用效果