Обнаружение устройства вверх ногами

Каковы правильные значения для обнаружения устройства вверх ногами?

У меня есть следующее, и он начинает обнаруживать, когда пользователь назвал устройство на своей спине.

Я использую следующие значения

float xx = -[acceleration x];
    float yy = [acceleration y];
    float angle = atan2(yy, xx);

    if(angle >= 0.75 && angle <= 2.25)
    {
        NSLog(@"Upside down");
    }

3 ответа

Решение

Начните слушать события ориентации, используя:

UIDevice *currDevice = [UIDevice currentDevice];
[currDevice beginGeneratingDeviceOrientationNotifications];

Затем получите ориентацию, используя:

currDevice.orientation

Это значения, которые возвращаются:

{'1': 'Portrait', '2': 'PortraitUpsideDown', '3': 'LandscapeLeft', '4': 'LandscapeRight', '5': 'FaceUp', '6': 'FaceDown'}

Ссылка на класс UIDevice

См. Раздел "Получение ориентации устройства".

Это мой подход (с кодом) для реализации обработки ориентации устройства на iOS, и вы можете использовать его, если хотите:

Как обрабатывать UIDeviceOrientation для управления макетами представлений

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