我有一个占据整个屏幕的UICollectionView
,里面是与集合视图大小相同的单元格。当用户点击按钮时,集合视图动画仅占用屏幕的一半(并且旁边显示另一个视图)。这很好,但单元格本身仍然是原始集合视图的大小。
我可以在集合视图的布局上调用invalidateLayout
,这将导致collectionView:layout:sizeForItemAtIndexPath:
被调用并且单元格全部被重新计算,并且大小是变化的,但这些不是动画,它们只是按下新尺寸。
是否可以同时为这些单元格大小更改设置动画,或者在同一动画块中设置动画,以便将大小更改设置为父集合视图?
答案 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];