如何从UICollectionViewFlowLayout动画itemSize?

时间:2013-09-30 07:39:21

标签: ios animation uicollectionview

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

当用户放大图形尺寸增加并且用户缩小图形尺寸减小时。要更改图表的大小,我只是从itemSize更改属性UICollectionViewFlowLayout。它运行良好,但我无法使用以下代码为更改设置动画:

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

知道如何动画这个变化吗?

此致

塞巴斯蒂安。

1 个答案:

答案 0 :(得分:1)

您可以使用集合视图的performBatchUpdates方法,该方法将使布局无效并重新查询,为任何新值设置动画。

这样的事情:

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

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