【问题标题】:Specify animation options in [UIViewControllerTransitionCoordinator animateAlongsideTransition]在 [UIViewControllerTransitionCoordinator animateAlongsideTransition] 中指定动画选项
【发布时间】:2015-03-19 00:53:05
【问题描述】:

我有一个使用 UICollectionView 的 iPad 应用程序。在 iOS 8 上,当设备旋转时,在我的主视图控制器的 viewWillTransitionToSize 中,我在 id<UIViewControllerTransitionCoordinator> 参数上调用 animateAlongsideTransition 并动画框架更改主视图中的各种视图,其中一个包含集合视图。

在 iOS 7 中,我使用 willRotateToInterfaceOrientation:duration: 通过 [UIView animateWithDuration:delay:options:animations:completion:] 调用为帧更改设置动画。我将UIViewAnimationOptionLayoutSubviews 作为选项参数传递,并且集合视图在调整大小时为其项目的重新布局设置动画。但是在带有animateAlongsideTransition 的iOS 8 上,只有最上面的视图会被动画化;它的所有子视图,包括集合视图及其单元格,都会闪烁到它们的新尺寸/帧。

我的问题:如何使用[animateAlongsideTransition]实现UIViewAnimationOptionLayoutSubviews的效果?

【问题讨论】:

    标签: ios animation rotation uicollectionview


    【解决方案1】:

    在 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];
    }
    

    【讨论】:

      猜你喜欢
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-14
      • 2015-06-22
      • 2011-01-16
      相关资源
      最近更新 更多