Обнаружение iPhone Устройство плоское - PullRequest
0 голосов
/ 18 февраля 2010

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

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

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

Ответы [ 3 ]

4 голосов
/ 18 февраля 2010

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

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

Их можно найти здесь: Справочник по классам UIDevice

1 голос
/ 18 февраля 2010

Посмотрите на UIAccelerometerUIAccelerometerDelegate) классы, которые должны использоваться для обнаружения движений устройства.
Редактировать: В справочнике классов UIAccelerometer имеются ссылки на 3 связанных образца: AccelorometerGraph , GLGravity и GLPaint

0 голосов
/ 18 февраля 2010

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

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

...