私は現在UICollectionViewを使用しており、setCollectionViewLayout:animatedを使用してレイアウトを変更した後、アニメーションの完了時にコードを実行したいと考えています。それを達成する方法はありますか?
乾杯、
私は現在UICollectionViewを使用しており、setCollectionViewLayout:animatedを使用してレイアウトを変更した後、アニメーションの完了時にコードを実行したいと考えています。それを達成する方法はありますか?
乾杯、
念のため、iOS7で導入された-setCollectionViewLayout:animated:completion:
メソッドがあります。UICollectionView
暗黙的なアニメーションを使用するのではなく、アニメーションを制御できるようにするには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;
}];
それが推奨される方法かどうかはわかりませんが、アニメーションを制御し、完了時にコードを実行することができます。