1

在执行旋转动画之前,是否可以在 iOS 上获得“将旋转”通知?喜欢的UIViewController方法willRotateToInterfaceOrientation:duration:

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

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

如果没有这样的通知,我正在考虑一种黑客攻击,例如将“假”视图添加到视图层次结构(到rootViewController的视图?),并覆盖layoutSubviews以发送自定义通知。有没有不那么骇人听闻的选择?

4

2 回答 2

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

于 2013-05-23T21:06:21.110 回答
0

据我记得,如果你签入你注册的方法,UIDeviceOrientationDidChangeNotification设备方向([[UIDevice currentDevice]orientation])是旋转后的新设备方向,但接口方向(self.interfaceOrientation)仍然是较旧的。viewWillLayoutSubviews具有新的界面方向。

于 2013-05-23T19:54:10.530 回答