Вопрос

Чтобы определить ориентацию телефона при съемке, я использую

orientation == UIDeviceOrientationLandscapeRight
orientation == UIDeviceOrientationPortraitUpsideDown
orientation == UIDeviceOrientationPortrait
orientation == UIDeviceOrientationLandscapeLeft

Но они работают, если снимок делается сбоку.Как мне проверить, наклонен ли iPhone вниз, чтобы быть плоским, напримерпри съемке с воздуха?

Это было полезно?

Решение

Существует другая константа для ориентации устройства:

typedef enum {
   UIDeviceOrientationUnknown,
   UIDeviceOrientationPortrait,
   UIDeviceOrientationPortraitUpsideDown,
   UIDeviceOrientationLandscapeLeft,
   UIDeviceOrientationLandscapeRight,
   UIDeviceOrientationFaceUp,
   UIDeviceOrientationFaceDown
} UIDeviceOrientation;

Вы можете найти их здесь: Ссылка на класс UIDevice

Другие советы

Взгляните на UIAccelerometerUIAccelerometerDelegate) классы, которые должны использоваться для обнаружения перемещений устройства.
Редактировать: В справочнике по классу UIAccelerometer есть ссылки на 3 связанных образца: Акселерометрический график, Глгравитация и Глянцевая краска

есть пример приложения на http://developer.apple.com/iphone это отображает необработанные данные с акселерометра.Установите его на свое устройство и посмотрите, какие данные вы получаете.

Пример приложения поставляется с опцией (я думаю, это "демпфирование"), которая эффективно устраняет гравитацию.Вы не хотите этого делать - на самом деле гравитация - это то, что будет "разгонять" ваше устройство по оси Z, когда оно плоское...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top