减小单元框架不会像放大框架那样动画

时间:2015-04-13 09:03:15

标签: ios animation uicollectionview

使用以下代码更改单元格的框架,然后为更改设置动画。

   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];

增加帧的高度时,动画可以正常工作。 当它降低到原始大小时,单元格的动画很笨重,很快就会降低高度,没有动画,但是其他的集合视图会动画更改

enter image description here

为什么这只会在降低高度时发生?

1 个答案:

答案 0 :(得分:0)

看看你的gif,看起来也许同样的问题也在你放大细胞时发生(即背景首先扩展,然后其余的内容随之而来)。是的,在第5帧中,背景颜色已经消失。

要调整UICollectionViewCells的大小,您通常不会在sizeForItemAtIndexPath:中设置大小而不是手动设置单元格的框架吗?

我原以为你必须拨打[self.collectionView.collectionViewLayout invalidateLayout];,然后在collectionView:layout:sizeForItemAtIndexPath:

中返回新尺寸

我不确定为什么动画会像现在这样,但我认为这不是改变单元格大小的首选方法,因此可能会影响它。