是否有可能在iOS上获得“将旋转”通知,之前执行旋转动画?与UIViewController
方法willRotateToInterfaceOrientation:duration:
一样。
我知道UIDeviceOrientationDidChangeNotification
,但在执行旋转动画后,似乎会发送。
我在视图控制器之外的NSObject
子类中工作。
如果没有这样的通知,我正在考虑一个黑客行为,例如向视图层次结构添加“假”视图(到rootViewController
的视图?),并覆盖layoutSubviews
以发送自定义通知。是否有一个不那么强硬的替代方案?
答案 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协议参考在这里:
答案 1 :(得分:0)
据我记忆,如果您检查已注册UIDeviceOrientationDidChangeNotification
的方法,则DEVICE方向([[UIDevice currentDevice]方向])是旋转后的新设备方向,但是INTERFACE方向(self.interfaceOrientation)仍然是较旧的。 viewWillLayoutSubviews
具有新的界面方向。