UIDeviceOrientationDidChangeNotification не работает, когда устройство находится на столе?

Привет, у меня есть проблема, По моему AppDelegate я использовал метод beginGeneratingDeviceOrientationNotifications чтобы начать, сообщите мне, когда устройство начинает вращаться. Он отлично работает, если я держу в руках свой Ipad, но когда он находится на столе, он не работает, как ожидалось. это стреляет UIDeviceOrientationUnknown уведомление. Также это уведомление запускается после запуска пользовательского интерфейса не на заставке.

ниже мой код:

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]; звонить, даже если уведомление зарегистрировано до его звонка...

Пожалуйста, любая помощь заметна!

1 ответ

Когда вы кладете свое устройство на стол, [[UIDevice currentDevice] orientation] вернусь UIDeviceOrientationFaceUp, Тогда, если ваше устройство остается на столе лицевой стороной вверх, не имеет значения, как вы поворачиваете его на столе, текущая ориентация устройства все равно будет UIDeviceOrientationFaceUp,

Если у устройства есть проблемы с определением ориентации, вы можете получить UIDeviceOrientationUnknown, Посмотрите это руководство о том, как обрабатывать поворот устройства с помощью UIDeviceOrientationDidChangeNotification,

Что касается вашего уведомления только после загрузки пользовательского интерфейса, UIDeviceOrientationDidChangeNotification будет срабатывать только при повороте устройства. Поэтому, если вы не поворачиваете свое устройство до тех пор, пока пользователь не загрузит пользовательский интерфейс, вы не получите уведомление. Если это не является причиной проблемы, мне нужно увидеть больше вашего кода, чтобы лучше понять, что происходит.

Другие вопросы по тегам