使用以下代码更改单元格的框架,然后为更改设置动画。
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];
当增加框架的高度时,动画可以正常工作。 当将其减小到原始大小时,单元格的动画很笨拙,快速减小高度,没有动画,但 collectionview 的其余部分动画变化
为什么只有在降低高度时才会发生这种情况?
最佳答案
看看你的 gif,当你放大单元格时,它几乎看起来可能会发生同样的问题(即,背景首先扩大,然后其余内容随之而来)。是的,在第 5 帧中,背景颜色已经消失。
调整大小 UICollectionViewCells
,你通常不会在 sizeForItemAtIndexPath:
中设置大小吗?而不是手动设置单元格的框架?
我在想你必须调用 [self.collectionView.collectionViewLayout invalidateLayout];
然后在 collectionView:layout:sizeForItemAtIndexPath:
中返回新尺寸
我不确定为什么动画会像现在这样,但我认为这不是更改单元格大小的首选方式,所以这可能会影响它。
关于ios - 缩小单元格框架与放大框架不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29601532/