使用以下代码更改单元格的框架,然后为更改设置动画。
if (_new_h == 200){
_new_h = 70;
}
else{
_new_h = 200;
}
CustomCell *cell = (CustomCell*)[self.collectionView cellForItemAtIndexPath:indexPath];
[self.collectionView performBatchUpdates:^{
cell.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, cell.frame.size.width, _new_h);
} completion:nil];
增加帧的高度时,动画可以正常工作。 当它降低到原始大小时,单元格的动画很笨重,很快就会降低高度,没有动画,但是其他的集合视图会动画更改
为什么这只会在降低高度时发生?
答案 0 :(得分:0)
看看你的gif,看起来也许同样的问题也在你放大细胞时发生(即背景首先扩展,然后其余的内容随之而来)。是的,在第5帧中,背景颜色已经消失。
要调整UICollectionViewCells
的大小,您通常不会在sizeForItemAtIndexPath:
中设置大小而不是手动设置单元格的框架吗?
我原以为你必须拨打[self.collectionView.collectionViewLayout invalidateLayout];
,然后在collectionView:layout:sizeForItemAtIndexPath:
我不确定为什么动画会像现在这样,但我认为这不是改变单元格大小的首选方法,因此可能会影响它。