iOS Gyroscope API - PullRequest
       2

iOS Gyroscope API

13 голосов
/ 21 августа 2011

Я учусь писать приложение, используя датчик гироскопа в iOS.Существуют ли классы для работы с гироскопом, аналогичные UIAcceleration / UIAccelerometer / UIAccelerometerDelegate для акселерометра?

Ответы [ 2 ]

31 голосов
/ 21 августа 2011

Первый импорт CoreMotion framework

#import <CoreMotion/CoreMotion.h>

    self.motionManager = [[CMMotionManager alloc] init];


    //Gyroscope
    if([self.motionManager isGyroAvailable])
    {
        /* Start the gyroscope if it is not active already */ 
        if([self.motionManager isGyroActive] == NO)
        {
            /* Update us 2 times a second */
            [self.motionManager setGyroUpdateInterval:1.0f / 2.0f];

            /* Add on a handler block object */

            /* Receive the gyroscope data on this block */
            [self.motionManager startGyroUpdatesToQueue:[NSOperationQueue mainQueue]
             withHandler:^(CMGyroData *gyroData, NSError *error)
            {
                NSString *x = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.x];
                self.gyro_xaxis.text = x;

                NSString *y = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.y];
                self.gyro_yaxis.text = y;

                NSString *z = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.z];
                self.gyro_zaxis.text = z;
            }];
        }
    }
    else
    {
        NSLog(@"Gyroscope not Available!");
    }

Как говорится в коде, сначала я создаю экземпляр диспетчера движения.Тогда я вижу, поддерживает ли устройство гироскоп.Если не умирать изящно, иначе установите интервал обновления гироскопа и зарегистрируйтесь, чтобы получать обновления от гироскопа.С этими обновлениями вам нужно определить свою собственную логику того, что вы хотите делать со значениями.Вот и все, тебе пора ...

6 голосов
/ 21 августа 2011

Для данных гироскопа вам необходимо использовать CoreMotion. Начните с чтения соответствующего раздела Руководства по обработке событий для iOS . Вам нужно будет работать с двумя классами: CMGyroData , который инкапсулирует данные событий гироскопа, и CMMotionManager , который используется для регистрации событий гироскопа.

Более подробную информацию можно найти в ответе на этот вопрос: Код образца яблочного гироскопа

...