iOS Gyroscope API

前端 未结 2 1959
难免孤独
难免孤独 2020-12-30 06:42

I am learning to write an app using the gyroscope sensor in iOS. Are there classes for dealing with the gyroscope similar to UIAcceleration/UIAccelerometer/UIAccelerometerDe

2条回答
  •  半阙折子戏
    2020-12-30 07:21

    First import CoreMotion framework

    #import 
    
        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!");
        }
    

    As the code says, first I create an instance of motion manager. Then I see if the device supports Gyroscope. If not die gracefully, else set gyroscope update interval & then register to get updates from gyroscope. With these updates you need to define your custom logic of what you want to do with the values. That's it you are good to go...

提交回复
热议问题