加速计

UIAccelerometer的使用步骤

// 获得单例对象

UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];

// 设置代理

accelerometer.delegate = self;

// 设置采样间隔

accelerometer.updateInterval = 1.0/30.0;

// 1秒钟采样30次

实现代理方法

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration

//acceleration中的x、y、z三个属性分别代表每个轴上的加速度


Core Motion的使用步骤(push)

// 创建运动管理者对象

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

//判断加速计是否可用(最好判断)

if (mgr.isAccelerometerAvailable){

//加速计可用

}

// 设置采样间隔

mgr.accelerometerUpdateInterval = 1.0/30.0;

// 1秒钟采样30次

// 开始采样(采样到数据就会调用handler,handler会在queue中执行)

- (void)startAccelerometerUpdatesToQueue:(NSOperationQueue*)queue withHandler:(CMAccelerometerHandler)handler;

Core Motion的使用步骤(pull)

// 创建运动管理者对象

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

//  判断加速计是否可用(最好判断)

if (mgr.isAccelerometerAvailable){ 

//加速计可用 

}

// 开始采样

- (void)startAccelerometerUpdates;

// 在需要的时候采集加速度数据

CMAcceleration acc = mgr.accelerometerData.acceleration;

NSLog(@"%f, %f, %f", acc.x,acc.y,acc.z);


摇一摇

监控摇一摇的方法

方法1:通过分析加速计数据来判断是否进行了摇一摇操作(比较复杂)

方法2:iOS自带的Shake监控API(非常简单)

判断摇一摇的步骤:实现3个摇一摇监听方法

- (void)motionBegan:(UIEventSubtype)motionwithEvent:(UIEvent*)event/**检测到摇动*/

- (void)motionCancelled:(UIEventSubtype)motionwithEvent:(UIEvent*)event/**摇动取消(被中断)*/

- (void)motionEnded:(UIEventSubtype)motionwithEvent:(UIEvent*)event/**摇动结束*/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容