3

私は現在UICollectionViewを使用しており、setCollectionViewLayout:animatedを使用してレイアウトを変更した後、アニメーションの完了時にコードを実行したいと考えています。それを達成する方法はありますか?

乾杯、

4

2 に答える 2

4

念のため、iOS7で導入された-setCollectionViewLayout:animated:completion:メソッドがあります。UICollectionView

于 2013-10-19T17:09:08.487 に答える
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;
                 }];

それが推奨される方法かどうかはわかりませんが、アニメーションを制御し、完了時にコードを実行することができます。

于 2012-11-29T23:22:36.533 に答える