如何使用collectionView setCollectionViewLayout更改布局更改的持续时间:动画?

Mic*_*est 1 core-animation ios uicollectionview uicollectionviewlayout

我有这个(哪里layoutUICollectionViewFlowLayout子类):

[layout invalidateLayout];
[self.collectionView setCollectionViewLayout:layout animated:YES]
Run Code Online (Sandbox Code Playgroud)

但似乎持续时间是固定的.改变持续时间最简单的方法是什么?

Are*_*lko 7

您可以通过以下方式执行此操作:

[UIView animateWithDuration:kAnimationDuration
                      delay:0.0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     [self.collectionView setCollectionViewLayout:layout animated:YES];
                 }
                 completion:nil];
Run Code Online (Sandbox Code Playgroud)

我不确定Apple是否在这些动画中使用UIViewAnimationOptionCurveEaseOutUIViewAnimationOptionCurveEaseInOut(或其他选项).但要发现它应该不难.