Обнаружение устройства вверх ногами
Каковы правильные значения для обнаружения устройства вверх ногами?
У меня есть следующее, и он начинает обнаруживать, когда пользователь назвал устройство на своей спине.
Я использую следующие значения
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'}
См. Раздел "Получение ориентации устройства".
Это мой подход (с кодом) для реализации обработки ориентации устройства на iOS, и вы можете использовать его, если хотите:
Как обрабатывать UIDeviceOrientation для управления макетами представлений