我目前正在使用 UICollectionView 并在使用 setCollectionViewLayout:animated: 将布局从一个更改为另一个之后:我想在动画完成后执行一些代码。知道如何实现吗?
干杯,
我目前正在使用 UICollectionView 并在使用 setCollectionViewLayout:animated: 将布局从一个更改为另一个之后:我想在动画完成后执行一些代码。知道如何实现吗?
干杯,
只是为了记录,现在有一个-setCollectionViewLayout:animated:completion:
方法 on UICollectionView
,在 iOS 7 中引入。
我发现为了能够控制动画,而不是使用隐式动画,setCollectionViewLayout:animated:
您可以使用标准 UIViewanimationWithDuration
并更改animations
块中的布局,如下所示:
[UIView animateWithDuration:0.4
delay:0
options:UIViewAnimationCurveEaseOut
animations:^{
self.oldView.collectionViewLayout = self.otherLayout;
self.newView.alpha = 1.0;
}
completion:^(BOOL finished){
self.oldView.alpha = 0.0;
self.otherLayout = nil;
}];
我不知道这是否是推荐的方法,但它可以让您控制动画并在完成后执行代码。