我目前正在使用UICollectionView并使用setCollectionViewLayout将布局从一个更改为另一个:animated:我想在动画完成时执行一些代码。知道如何实现这个目标吗?
干杯,
答案 0 :(得分:4)
仅供记录,现在在iOS 7中引入了-setCollectionViewLayout:animated:completion:
UICollectionView
方法。
答案 1 :(得分:3)
我发现能够控制动画,而不是使用setCollectionViewLayout:animated:
的隐式动画,您可以使用标准的UIView animationWithDuration
并更改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;
}];
我不知道这是否是推荐的方法,但它可以让你控制动画并在完成时执行代码。