超精准的iOS计步器实现代码

本文实例为大家分享了iOS计步器实现代码,供大家参考,具体内容如下

#import "ViewController.h"
#import <CoreMotion/CoreMotion.h>

@interface ViewController ()

@property (nonatomic, strong) CMStepCounter *conter;

@property (weak, nonatomic) IBOutlet UILabel *stepLabel;

@end

@implementation ViewController

- (void)viewDidLoad {
 [super viewDidLoad];

 // 1、判断计步器是否可用
 if (![CMStepCounter isStepCountingAvailable]) {return;}

 // 2、开始计步
 [self.conter startStepCountingUpdatesToQueue:[NSOperationQueue mainQueue] updateOn:5 withHandler:^(NSInteger numberOfSteps, NSDate * _Nonnull timestamp, NSError * _Nullable error) {

  self.stepLabel.text = [NSString stringWithFormat:@"一共走了%ld步", numberOfSteps];
 }];

}

- (CMStepCounter *)conter{
 if (_conter == nil) {
  _conter = [[CMStepCounter alloc] init];
 }
 return _conter;
}

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • IOS计步器功能实现之Healthkit和CMPedometer

    介绍 CMPedometer:可以访问用户活动(可以访问计步数据) 适用ios8以上的系统 ios可看最下面说明 Healthkit :是ios系统中的健康应用 需要应用授权来访问健康数据(比如计步) 这两个有什么区别呢? 其实 Healthkit 也是 使用 CMPedometer 读取用户的步数和走的里程,当然计算的方法是在手机内部计算的, 它是利用 iphone5s 以上的m处理器来获取数据计算了,所以5s以下的设备是不支持 CMPedometer 手机计步的,当然有大牛可以利用重力传感器

  • 详解iOS 计步器的几种实现方式

    这篇文章介绍两种可以获取计步数据的方法,一种是采用CMPedometer获取手机计步器数据,另一种是采用HealthKit框架从手机健康App中获取计步数据.另外玩了一下写入数据到健康App.有描述不当之处,望指点. 花絮(用HealthKit框架构建app,写入数据到苹果健康app中,QQ和Keep等第三方app的运动数据都会随之改变,猜测它们的运动数据是直接从苹果健康app中获取,而且没有过滤掉其它数据来源.而微信运动的数据不会变,猜测其来源可能是使用CMPedometer类获取的,因为测试

  • 超精准的iOS计步器实现代码

    本文实例为大家分享了iOS计步器实现代码,供大家参考,具体内容如下 #import "ViewController.h" #import <CoreMotion/CoreMotion.h> @interface ViewController () @property (nonatomic, strong) CMStepCounter *conter; @property (weak, nonatomic) IBOutlet UILabel *stepLabel; @end

  • iOS 拨打电话代码的三种方式

     1,这种方式,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示 NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"186xxxxxxxx"]; // NSLog(@"str======%@",str); [[UIApplication sharedApplication] openURL:[NSURL URLWithStri

  • iOS 隐藏tabbar代码详解

    -(void)viewWillAppear:(BOOL)animated { NSArray *array=self.tabBarController.view.subviews; UIView *view=array[2]; view.frame=CGRectMake(0, [UIScreen mainScreen ].bounds.size.height, [UIScreen mainScreen ].bounds.size.width, 49); [UIView commitAnimati

  • IOS App 无代码入侵的方法hook详细介绍

    iOS App 无代码入侵的方法hook 继续Objective-C runtime的研究 最近公司项目在做用户行为分析 于是App端在某些页面切换,交互操作的时候需要给统计系统发送一条消息 在几十个Controller 的项目里,一个一个地加代码那完全是不可能的,维护起来也是吃力 但这里需要处理的是 Controller, 可以有以下方式实现上述需求 1. 利用Objective-C 中的对象继承 继承 在面向对象开发中是非常常用的,像我们现在做的项目工程中都会有一个BaseViewContr

  • iOS用两行代码完美解决数据持久化

    前言 在实际的iOS开发中,有些时候涉及到将程序的状态保存下来,以便下一次恢复,或者是记录用户的一些喜好和用户的登录信息等等. 这就需要涉及到数据的持久化了,所谓数据持久化就是数据的本地保存,将数据从内存中迁入到存储器上.网上有很多种数据持久化的方法,如实现自己实现I/O.数据库.云或则走第三方接口等等.但是有时候可能只是进行一些简单的数据存储,如用户的偏好设置.用户的sessionID等等,这时候使用上述方法便显得有点兴师动众了,现在需要一种更加轻量化的操作方式. 一.认识 NSUserDef

  • IOS开发OC代码中创建Swift编写的视图控制器

    IOS开发OC代码中创建Swift编写的视图控制器 背景 近日在和一群朋友做项目,我和另一位同学负责iOS客户端,我是一直使用OC的,而他只会Swift,因此在我们分工协作之后,就需要把代码合在一起,这就牵扯到如何在TabbarController中添加一个swift创建的子控制器的问题. 解决 首先在一个OC项目中新建一个Swift类,继承自UITableViewController,并且修改其view背景色,方便后续测试. import UIKit class ESSwiftTableVie

  • jQuery超酷平面式时钟效果代码分享

    本文实例讲述了jQuery超酷平面式时钟效果代码.分享给大家供大家参考.具体如下: jQuery制作的超酷平面式时钟效果,把日期和时间通过横向刻度条展现,经测试效果非常酷,是一个很不错的学习实例. 这里我们还要提到之前实现的另一个特别新颖的时间显示样式:js实现温度计时间样式,两者都完全突破了传统的时钟概念,感兴趣的各位可不要错过了哈. 运行效果图:----------------------查看效果 下载源码----------------------- 小提示:浏览器中如果不能正常运行,可以

  • Android开发仿IOS滑动开关实现代码

    Android开发仿IOS滑动开关实现代码 Android与iOS相比,ios好多控件都是自带的,而android需要使用自定义来实现.今天说的是ios的滑动开关,我层看到好多博客都是通过自定义ToggleButton实现的.这里我通过自定义view来实现他的效果. 首先在onsizechange里把2个半圆和一个矩形绘制出来. width = w; height = h; left = top = 0; right = width; bottom = height * 0.8f; cx = (

  • iOS Xcode自定义代码块及迁移的实现方法

    前言 文中将要介绍以下四点内容 代码块的意义 自定义代码块入口 代码块迁移 代码块的编写 下面话不多说了,来一起看看详细的介绍吧 一 . 意义在于节约时间成本 like 我在编译器键入 strong, 回车 自动生成 @property (nonatomic, strong) <#Class#> *<#object#>; 二 . 如何自定义代码块 如下图所示 选中一行代码右键 crate code snippet 右上角方框快速进入 图1 下图填入描述, 以及快捷方式 图2 三 .

  • iOS中一行代码实现 UIView 镂空效果

    这是一种实现 UIView 镂空效果的方案,可以快速实现任意形状的镂空.文字的镂空.带镂空的毛玻璃效果等.本质上是 UIView 的 maskView 效果. 前言 首先来复习一下遮罩效果的实现.如果我们有一张图片,又恰好有一个圆,当我们把圆设置为图片的遮罩时,会得到这样的结果. 代码实现看上去像是这样: view.maskView = maskView; 那么问题来了,如果我们希望得到下面的结果,该怎么做呢?这看起来像是图层的相减,即原来的图层减去遮罩的部分. 可惜苹果爸爸不够贴心,没有提供方

随机推荐