【问题标题】:How to animate along with device rotation on iOS 7如何在 iOS 7 上与设备旋转一起制作动画
【发布时间】:2015-05-19 01:25:49
【问题描述】:

我想做一些动画以及设备旋转。在 iOS 8 上,我可以这样做:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

    [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
        // My custom animation
    } completion:nil];
}

但是这种方法在 iOS 7 上不可用。我尝试做类似的事情如下:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];

    [self.transitionCoordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
        // Custom animations
    } completion:nil];
}

但是 self.transitionCoordinator 对象在这里是 nil 。有谁知道如何在 iOS 7 上实现同样的效果?

我不确定我是否只是在错误的地方调用了这个 animateAlongsideTransition 方法,或者即使 animateAlongsideTransition 是正确的调用方法。因此,我们将不胜感激任何帮助/指导。

谢谢

【问题讨论】:

    标签: animation ios7 ios8 rotation


    【解决方案1】:

    看来我已经为自己的问题找到了答案。对于那些也想知道同样事情的人,willAnimateRotationToInterfaceOrientation 方法是一个可以使用的方法。

    - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
    {
        [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
    
        [UIView animateWithDuration:duration animations:^{
            // Custom animations
        }];
    }
    

    看起来自定义动画必须在这里。如果我将动画块移动到 willRotateToInterfaceOrientation 方法,它将不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 2014-10-02
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多