IOS實(shí)現(xiàn)基于CMPedometer的計(jì)步器
CMStepCount類在IOS8已經(jīng)不推薦使用了,IOS8推薦使用CMPedometer類來(lái)處理用戶健康和運(yùn)動(dòng)信息.下面是一個(gè)小小的demo來(lái)演示下,如何使用它,以及一些注意事項(xiàng).
#import "ViewController.h"
#import <CoreMotion/CoreMotion.h>
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *stepLabel;
@property(nonatomic,strong) CMPedometer *stepter;
@property (weak, nonatomic) IBOutlet UILabel *totalLabel;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
if(![CMPedometer isStepCountingAvailable])
{
NSLog(@"計(jì)步器不可用");
return;
}
_stepter =[[CMPedometer alloc]init];
NSTimeInterval secondsPerDay =24*60*60;
NSDate *date =[NSDate date];
NSDate *yesterDay =[date dateByAddingTimeInterval:-secondsPerDay];
[_stepter startPedometerUpdatesFromDate:yesterDay withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
if(error)
{
NSLog(@"error ==%@",error);
}else
{
NSNumber *steps =pedometerData.numberOfSteps;
NSNumber *distance =pedometerData.distance;
NSDictionary *dic =@{
@"steps":steps,
@"distance":distance
};
NSLog(@"過(guò)去一天你一共走了%@步,一共%@米",steps,distance);
[self performSelectorOnMainThread:@selector(refreshUI:) withObject:dic waitUntilDone:NO];
}
}];
}
-(void)refreshUI:(NSDictionary *)dic
{
NSNumber *distance =dic[@"distance"];
float meters =[distance floatValue];
self.stepLabel.text =[NSString stringWithFormat:@"%@",dic[@"steps"]];
self.totalLabel.text =[NSString stringWithFormat:@"%.2f",meters];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
此處還有一點(diǎn)需要注意:就是請(qǐng)?jiān)趇nfo.plist文件中加入你要訪問用戶健康和運(yùn)動(dòng)信息的描述,如下圖

運(yùn)行結(jié)果如下:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
iOS開發(fā)之TableView實(shí)現(xiàn)完整的分割線詳解
在iOS開發(fā)中, tableView是我們最常用的UI控件之一。所以這篇文章主要給大家詳細(xì)介紹了關(guān)于iOS中的TableView分割線,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-12-12
iOS 獲取當(dāng)前時(shí)間及時(shí)間戳的互換實(shí)例
下面小編就為大家分享一篇iOS 獲取當(dāng)前時(shí)間及時(shí)間戳的互換實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
iOS中利用CoreAnimation實(shí)現(xiàn)一個(gè)時(shí)間的進(jìn)度條效果
在iOS中實(shí)現(xiàn)進(jìn)度條通常都是通過(guò)不停的設(shè)置progress來(lái)完成的,這樣的進(jìn)度條適用于網(wǎng)絡(luò)加載(上傳下載文件、圖片等)。下面通過(guò)本文給大家介紹iOS中利用CoreAnimation實(shí)現(xiàn)一個(gè)時(shí)間的進(jìn)度條,需要的的朋友參考下吧2017-09-09
IOS 靜態(tài)庫(kù)打包流程簡(jiǎn)化詳細(xì)介紹
這篇文章主要介紹了IOS 靜態(tài)庫(kù)打包流程簡(jiǎn)化詳細(xì)介紹的相關(guān)資料,開發(fā)好的靜態(tài)庫(kù)后需要手動(dòng)的合并.a文件,然后再拷貝相關(guān)的頭文件,接著把靜態(tài)庫(kù)和頭文件放在同一個(gè)文件里面打包發(fā)送給SDK的使用者,這里簡(jiǎn)化下流程,需要的朋友可以參考下2016-12-12
iOS 對(duì)NSMutableArray進(jìn)行排序和過(guò)濾的實(shí)例
下面小編就為大家分享一篇iOS 對(duì)NSMutableArray進(jìn)行排序和過(guò)濾的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
iOS開發(fā)-自定義相機(jī)實(shí)例(仿微信)
這篇文章主要介紹了iOS開發(fā)-自定義相機(jī)實(shí)例(仿微信),實(shí)例分析了ios 自定義相機(jī)的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-03-03

