Ios 在自定义布局中更改约束时设置UICollectionView项的动画

Ios 在自定义布局中更改约束时设置UICollectionView项的动画,ios,objective-c,animation,uicollectionview,Ios,Objective C,Animation,Uicollectionview,我使用的是自定义UICollectionview布局,它将项目显示在一个圆圈中。在向上滑动时,我重置了collectionview上的约束,并设置这些约束更改的动画。我想我的项目动画与约束的变化,所以这是一个顺利的经验 我让他们制作动画,但只有在约束改变后,我认为,这看起来既混乱又奇怪,请查看此处的屏幕放映: 这是“滑动手势”方法中的代码: - (void)foo:(UISwipeGestureRecognizer *)gesture { [self.view layoutIfNeed

我使用的是自定义UICollectionview布局,它将项目显示在一个圆圈中。在向上滑动时,我重置了collectionview上的约束,并设置这些约束更改的动画。我想我的项目动画与约束的变化,所以这是一个顺利的经验

我让他们制作动画,但只有在约束改变后,我认为,这看起来既混乱又奇怪,请查看此处的屏幕放映:

这是“滑动手势”方法中的代码:


- (void)foo:(UISwipeGestureRecognizer *)gesture {
    [self.view layoutIfNeeded];

    [self.collectionView mas_remakeConstraints:^(MASConstraintMaker *make) {
        make.width.equalTo(self.view.mas_width);
        make.height.equalTo(self.collectionView.mas_width);
        make.top.equalTo(self.view.mas_top).offset(50);
    }];

    [UIView animateWithDuration:1.0 animations:^{
        [self.view layoutIfNeeded];
    }];

    [self.collectionView performBatchUpdates:^{
        CircleLayout *layout = (CircleLayout *)self.collectionView.collectionViewLayout;
    } completion:nil];
}

有什么建议吗?

我不确定什么是MastMaker,视频也不起作用。 但是在PerformBatchUpdate块中,您将获得集合视图布局。你拿它干什么?它没有使用过。也许这能给你指出正确的解决方案