当集合视图大小更改时,我需要帮助动画UICollectionView单元格大小

时间:2014-03-06 08:15:58

标签: ios objective-c animation uicollectionview uicollectionviewlayout

我有一个占据整个屏幕的UICollectionView,里面是与集合视图大小相同的单元格。当用户点击按钮时,集合视图动画仅占用屏幕的一半(并且旁边显示另一个视图)。这很好,但单元格本身仍然是原始集合视图的大小。

我可以在集合视图的布局上调用invalidateLayout,这将导致collectionView:layout:sizeForItemAtIndexPath:被调用并且单元格全部被重新计算,并且大小是变化的,但这些不是动画,它们只是按下新尺寸。

是否可以同时为这些单元格大小更改设置动画,或者在同一动画块中设置动画,以便将大小更改设置为父集合视图?

1 个答案:

答案 0 :(得分:1)

 [_collectionView performBatchUpdates:^{

    for (int i =0; i<count; i++) {
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
        UICollectionViewCell *cell = [_collectionView cellForItemAtIndexPath:indexPath];
        cell.layer.transform = CATransform3DMakeScale(0.9, 0.9, 1);
    }

} completion:nil];