在iPad ios 9上,使用objective-c: - 将应用程序锁定在应用程序之外 - 代码:如何检测设备何时更改方向?
我尝试了所有可能性:
1)尝试 grab UIDeviceOrientationDidChangeNotification 事件:
- (void)subscribeOrientationChangeEvent {
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:[UIDevice currentDevice]];
}
- (void) orientationChanged:(NSNotification *)note {
NSLog("Device rotated");
}
2)覆盖 viewWillTransitionToSize 方法
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
NSLog("Device rotated");
}
3)使用KVO查看 [UIDevice currentDevie] 的值 orientation
4)使用KVO查看 [UIApplication sharedApplication] 的值 statusBarOrientation
5)设置 Require FullScreen 进行设置 StatusBarStyle
参考:link
应用此设置并结合上述所有尝试,但都失败了 .
6)使用Accelerometer(CMMotionManager)
有什么建议?非常感谢
1 回答
如果设备方向是锁定;你的应用必须遵守它 . 由于显而易见的原因,您将无法检测方向 . 所以简短的回答是你不能 .