在[UIViewControllerTransitionCoordinator animateAlongsideTransition]中指定动画选项

Tom*_*ing 5 animation rotation ios uicollectionview

我有一个使用的iPad应用程序UICollectionView.在iOS 8,当装置旋转时,在viewWillTransitionToSize我的主视图控制器,我请animateAlongsideTransitionid<UIViewControllerTransitionCoordinator>参数和动画帧改变在主视图中,其中一个包含的集合视图各种视图.

在iOS 7中,我用来willRotateToInterfaceOrientation:duration:通过[UIView animateWithDuration:delay:options:animations:completion:]调用来动画帧更改.我UIViewAnimationOptionLayoutSubviews作为options参数传递,并且集合视图在调整大小时动画化其项目的重新布局.但是在iOS 8上animateAlongsideTransition,只有最顶层的视图才能生成动画; 它的所有子视图,包括集合视图及其单元格,都只是闪烁到新的大小/帧.

我的问题:我该如何使用或达到的效果UIViewAnimationOptionLayoutSubviews使用[animateAlongsideTransition]

mal*_*hal 0

在 Apple 的 AdaptivePhotos 示例中,他们只是调用setNeedsLayout

AAPLProfileViewController.m

- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
{
    [super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
    [coordinator animateAlongsideTransition:^(id <UIViewControllerTransitionCoordinatorContext> context) {
        [self updateConstraintsForTraitCollection:newCollection];
        [self.view setNeedsLayout];
    } completion:nil];
}
Run Code Online (Sandbox Code Playgroud)