首页 > 代码库 > IOS 计步器
IOS 计步器
这篇博客介绍的是当前比较流行的“计步器”-只是简单的知识点
计步器的实现在IOS8开始进行了改变。
但是我会对之前之后的都进行简单介绍。
IOS 8 -
// // ViewController.m // CX 计步器 // // Created by ma c on 16/4/12. // Copyright ? 2016年 bjsxt. All rights reserved. // #import "ViewController.h" #import <CoreMotion/CoreMotion.h> @interface ViewController () @property (nonatomic, strong) CMStepCounter * counter; @end @implementation ViewController #pragma mark - <懒加载> - (CMStepCounter *)counter{ if (!_counter) { _counter = [[CMStepCounter alloc]init]; } return _counter; } - (void)viewDidLoad { [super viewDidLoad]; //判断计步器是否可用 if (![CMStepCounter isStepCountingAvailable]) { NSLog(@"计步器不可用"); return; } //开始计步 //startStepCountingUpdatesToQueue 选择在哪个线程里进行 //updateOn 对应的是每隔几秒后回调下面的block [self.counter startStepCountingUpdatesToQueue:[NSOperationQueue mainQueue] updateOn:2 withHandler:^(NSInteger numberOfSteps, NSDate * _Nonnull timestamp, NSError * _Nullable error) { if (error) { return ; } NSLog(@"可以在这里进行一些操作"); }]; } @end
IOS 8 +
// // ViewController.m // CX 计步器 // // Created by ma c on 16/4/12. // Copyright ? 2016年 bjsxt. All rights reserved. // #import "ViewController.h" #import <CoreMotion/CoreMotion.h> @interface ViewController () @property (nonatomic, strong) CMPedometer * meter; @end @implementation ViewController #pragma mark - <懒加载> - (CMPedometer *)meter{ if (!_meter) { _meter = [[CMPedometer alloc]init]; } return _meter; } - (void)viewDidLoad { [super viewDidLoad]; //判断计步器是否可用 if (![CMPedometer isStepCountingAvailable]) { NSLog(@"计步器不可用"); return; } //开始计步 //在一段时间内的部步数与距离 [self.meter queryPedometerDataFromDate:[NSDate date] toDate:[NSDate dateWithTimeIntervalSinceNow:60*60] withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) { if (error) { NSLog(@"error===%@",error); } else { NSLog(@"步数===%@",pedometerData.numberOfSteps); NSLog(@"距离===%@",pedometerData.distance); } }]; } @end
IOS 计步器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。