我想做一些动画随着设备旋转。在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方法,它将不起作用