iOS学习,加速度传感器

这篇博客主要介绍了在iOS应用中如何使用加速度传感器。通过导入CoreMotion框架,初始化CMMotionManager,判断传感器可用性,设置更新频率,并启动更新来获取设备的加速度数据,展示了实时更新UI的实现过程。
摘要由CSDN通过智能技术生成

写在前面

刚开始学习iOS开发,在此过程中学习到很多知识点,写这些的目的,首先是为了给像我一样的小白提供一些参考资料,其次是对自己所学知识的一个总结与记录。

准备工作

需要导入一些东西:
1.导入框架:CoreMotion.framework
2.在需要使用加速度传感器的viewController中导入头文件:

#import  <CoreMotion/CoreMotion.h>


正式开始

先上代码,后面分析:
代码,来!!!!!

#import "ViewController.h"

#import  <CoreMotion/CoreMotion.h>


@interface ViewController () {

    CMMotionManager *motionManager;

}


@end


@implementation ViewController


- (void)viewDidLoad

{

    [super viewDidLoad];

    

    [self initCoreMotionA];

}


#pragma mark - CoreMotion

#pragma mark 初始化

- (void)initCoreMotionA

{

    /**

     *  1.初始化加速度传感器

     *  2.判断是否可用

     *   3.设定更新频率

     *  4.启动更新

     */

    

    //初始化传感器,不可直接实例化,要弄为成员变量。

    motionManager = [[CMMotionManager alloc]init];

    

    //判断传感器是否可以使用

    

    if ([motionManager isAccelerometerAvailable]) {//传感器可用

        

        //设置采样频率

        [motionManager setAccelerometerUpdateInterval:1 / 3];

        

        //启动更新

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

            

            //更新UI

            self.xLabel.text = [NSString stringWithFormat:@"%.3f",accelerometerData.acceleration.x];

            self.yLabel.text = [NSString stringWithFormat:@"%.3f",accelerometerData.acceleration.y];

        }];

        

    } else {//传感器不可用

        NSLog(@"传感器不可用");

    }

}


@end



PS:我才发现直接从xcode直接粘贴过来就会有颜色,真棒啊!

分析

其实代码上就有主要注释;
主要步骤有4:

    /**

     *  1.初始化加速度传感器

     *  2.判断是否可用

     *   3.设定更新频率

     *  4.启动更新

     */

-------------------------------------------------------------------------

    //1.初始化传感器,不可直接实例化,要弄为成员变量。

    motionManager = [[CMMotionManager alloc]init];

这个不能直接实例化,需要弄成成员变量,不然不好用,没效果。不清楚原因,还请知道的人解答。

  //2.判断传感器是否可以使用

  if ([motionManager isAccelerometerAvailable]) {//传感器可用


    } else {//传感器不可用

        NSLog(@"传感器不可用");

    }

 //3.设置采样频率

        [motionManager setAccelerometerUpdateInterval:1 / 3];

 //4.启动更新

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

        }];


直接是Block,在里面完成更新UI等工作。

PS:传感器自动工作于后台线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值