如何在iOS 7上与设备旋转一起动画



我想做一些动画随着设备旋转。在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];
}

而是自我。transitionCoordinator对象在这里是nil。有人知道如何在iOS 7上实现同样的效果吗?

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

谢谢

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

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

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

最新更新