如何在 iOS 7 上与设备旋转一起制作动画
Posted
技术标签:
【中文标题】如何在 iOS 7 上与设备旋转一起制作动画【英文标题】:How to animate along with device rotation on 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 是正确的调用方法。因此,我们将不胜感激任何帮助/指导。
谢谢
【问题讨论】:
【参考方案1】:看来我已经为自己的问题找到了答案。对于那些也想知道同样事情的人,willAnimateRotationToInterfaceOrientation 方法是一个可以使用的方法。
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
[UIView animateWithDuration:duration animations:^
// Custom animations
];
看起来自定义动画必须在这里。如果我将动画块移动到 willRotateToInterfaceOrientation 方法,它将不起作用。
【讨论】:
以上是关于如何在 iOS 7 上与设备旋转一起制作动画的主要内容,如果未能解决你的问题,请参考以下文章