“会轮换”通知吗?

时间:2013-05-23 16:36:55

标签: ios notifications screen-rotation

是否有可能在iOS上获得“将旋转”通知,之前执行旋转动画?与UIViewController方法willRotateToInterfaceOrientation:duration:一样。

我知道UIDeviceOrientationDidChangeNotification,但在执行旋转动画后,似乎会发送

我在视图控制器之外的NSObject子类中工作。

如果没有这样的通知,我正在考虑一个黑客行为,例如向视图层次结构添加“假”视图(到rootViewController的视图?),并覆盖layoutSubviews以发送自定义通知。是否有一个不那么强硬的替代方案?

2 个答案:

答案 0 :(得分:6)

UIApplicationDelegate协议application:willChangeStatusBarOrientation:duration:

您可以使用以下两种方法之一来查看:

- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration;
- (void)application:(UIApplication *)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation;

Apple的UIApplicationDelegate协议参考在这里:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html

答案 1 :(得分:0)

据我记忆,如果您检查已注册UIDeviceOrientationDidChangeNotification的方法,则DEVICE方向([[UIDevice currentDevice]方向])是旋转后的新设备方向,但是INTERFACE方向(self.interfaceOrientation)仍然是较旧的。 viewWillLayoutSubviews具有新的界面方向。