您好我有问题,
在我的AppDelegate
中,我使用方法beginGeneratingDeviceOrientationNotifications
在设备开始旋转时开始通知我。
它可以正常工作,如果我手持我的ipad,但当它保持在桌子上,它不能按预期工作。
它会触发UIDeviceOrientationUnknown
通知。
此UI通知也不会在启动画面上启动时启动此通知。
以下是我的代码:
if([[[PulseUIFactory Factory] GetUICreator] IsIPad])
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
}
current device stars giving proper values.
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
然后我推出了我的用户界面
[self Launch_UI];
但是,即使在通知之前注册了通知,通知也会在[self Launch_UI];
通话后开始响应...
请大家帮忙!
答案 0 :(得分:0)
当您将设备放在桌面上时,[[UIDevice currentDevice] orientation]
将返回UIDeviceOrientationFaceUp
。然后,如果您的设备正面朝上放在桌面上,无论您如何在桌面上旋转它,当前的设备方向仍为UIDeviceOrientationFaceUp
。
如果设备在确定方向时遇到问题,您可能会获得UIDeviceOrientationUnknown
。请参阅this教程,了解如何使用UIDeviceOrientationDidChangeNotification
处理设备轮换。
关于仅在加载UI后触发的通知,UIDeviceOrientationDidChangeNotification
仅在设备旋转时触发。因此,如果您在UI加载之前没有旋转设备,则不会收到通知。如果这不是问题的原因,我必须看到更多的代码,以便更好地了解发生了什么。