首页 文章

当锁定设置在外面时,如何在iPad iOS 9上检测设备方向更改事件?

提问于
浏览
1

在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 回答

  • 0

    如果设备方向是锁定;你的应用必须遵守它 . 由于显而易见的原因,您将无法检测方向 . 所以简短的回答是你不能 .

相关问题