Core Motion 加速器的使用步驟


兩種使用方法

1. pull(用戶主動獲取, 調用頻率根據用戶需求)

- (void)pull

{

    // 1. 創建mgr

    CMMotionManager *mgr = [[CMMotionManager alloc] init];

    _mgr = mgr; 

    

    // 2. 判斷加速器是否能夠使用

    if (mgr.isAccelerometerAvailable) { // 可以使用

        //  3.開始獲取

        [mgr startAccelerometerUpdates];

        

        // 此處已點擊一次屏幕採集一次信息

    }

    

}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    // 點擊屏幕就獲取採集信息

    NSLog(@"x = %f y = %f z = %f ", _mgr.accelerometerData.acceleration.x , _mgr.accelerometerData.acceleration.y, _mgr.accelerometerData.acceleration.z);

}


--------------------------- 華麗的分割線-----------------------


2. push (系統主動推送,調用頻率高)

- (void)push

{

    // 1.創建CoreMotion管理者

    CMMotionManager *mgr = [[CMMotionManager alloc] init];

    _mgr = mgr;

    

    // 2.判斷加速器是否能夠使用(最好判斷)

    if(mgr.isAccelerometerAvailable){ // 可以使用

        

        // 3.設置獲取時間間隙

        mgr.accelerometerUpdateInterval = 1.0 / 30.0; // 1分鐘30

        

        // 4.開始獲取

        [mgr startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData * _Nullable accelerometerData, NSError * _Nullable error) {

            if (!error) { // 採集成功

                NSLog(@"x = %f y = %f z = %f ", accelerometerData.acceleration.x , accelerometerData.acceleration.y, accelerometerData.acceleration.z);

            }

        }];

    }

}

@end



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章