我想在设备旋转的同时做一些动画。在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对象在这里是零。有谁知道如何在iOS 7上实现相同的效果?
我不确定我是否只是在错误的地方调用这个animateAlsidesideTransition方法,或者即使animateAlongsideTransition是正确的调用方法。所以任何帮助/指导都将不胜感激。
由于
答案 0 :(得分:1)
看起来我找到了自己问题的答案。对于那些也想知道同样事情的人来说, willAnimateRotationToInterfaceOrientation 方法是一个可以使用的方法。
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
[UIView animateWithDuration:duration animations:^{
// Custom animations
}];
}
看起来自定义动画必须在这里。如果我将动画块移动到willRotateToInterfaceOrientation方法,它将无法工作。