发布于 2017-11-01 09:27:24 | 33 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Swift教程,程序狗速度看过来!

Swift编程语言

SWIFT,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。


这篇文章主要为大家详细介绍了swift计步器CMPedometer的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

最近公司接了个项目,是一款运动类型的APP,可以检测运动量(例如:步数,上下楼等)、睡眠信息、速度等信息,因为以前粗略的了解过传感器方面的相关信息,知道主要是苹果设备内置的传感器在起作用,传感器的种类也很多,有兴趣的可以去查看苹果官方文档或者查阅大神们的博客都可以找到!但是一直也没有自己写一下,做个测试:

话不多说,代码如下:

1、准备


//  计步器
  var myTextView = UITextView()
  var pedometer = CMPedometer()
  var myBtn = UIButton()

2、在plist文件中添加相关权限描述:

Privacy - Motion Usage Description  :String    计步器需要获取您的运动信息

3、具体代码如下:


  myBtn.frame = CGRect(x:10,y:360,width:kScreenWidth-20,height:50)
  myBtn.setTitle("按钮", for: .normal)
  myBtn.setTitle("倒计时中", for: .disabled)
  myBtn.backgroundColor = UIColor.orange
  myBtn.setTitleColor(UIColor.white, for: .normal)
  myBtn.setTitleColor(UIColor.blue, for: .disabled)
  myBtn.addTarget(self, action: #selector(btnClick), for: .touchUpInside)
  self.view.addSubview(myBtn)
func btnClick(){
  self.startPedometerUpdates()
  }
//  ---------------------------------计步器--------------------------------------------
func creatPedometer(){
  myTextView.frame = CGRect(x:20,y:100,width:kScreenWidth-20,height:200)
  self.view.addSubview(myTextView)
//    创建触发按钮
  myBtn.frame = CGRect(x:10,y:360,width:kScreenWidth-20,height:50)
  myBtn.setTitle("按钮", for: .normal)
//    myBtn.setTitle("倒计时中", for: .disabled)
  myBtn.backgroundColor = UIColor.orange
//    myBtn.setTitleColor(UIColor.white, for: .normal)
//    myBtn.setTitleColor(UIColor.blue, for: .disabled)
  myBtn.addTarget(self, action: #selector(btnClick), for: .touchUpInside)
  self.view.addSubview(myBtn)
}
//  开始获取步数数据
func startPedometerUpdates(){
//   判断设备支持情况
  guard CMPedometer.isStepCountingAvailable() else {
    self.myTextView.text = "\n当前设备不支持获取步数\n"
    return
  }
//    获取今天凌晨胜博發
  let cal = Calendar.current
  var comps = cal.dateComponents([.year,.month,.day], from: Date())
  comps.hour = 0
  comps.minute = 0
  comps.second = 0
  let midnightOfToday = cal.date(from: comps)
//初始化并开始实时获取数据
    self.pedometer.startUpdates (from: midnightOfToday!, withHandler: { pedometerData, error in
      //错误处理
      guard error == nil else {
        print(error!)
        return
      }
      //获取各个数据
      var text = "---今日运动数据---\n"
      if let numberOfSteps = pedometerData?.numberOfSteps {
        text += "步数: \(numberOfSteps)\n"
      }
      if let distance = pedometerData?.distance {
        text += "距离: \(distance)\n"
      }
      if let floorsAscended = pedometerData?.floorsAscended {
        text += "上楼: \(floorsAscended)\n"
      }
      if let floorsDescended = pedometerData?.floorsDescended {
        text += "下楼: \(floorsDescended)\n"
      }
      if #available(iOS 9.0, *) {
        if let currentPace = pedometerData?.currentPace {
          text += "速度: \(currentPace)m/s\n"
        }
      } else {
        // Fallback on earlier versions
      }
      if #available(iOS 9.0, *) {
        if let currentCadence = pedometerData?.currentCadence {
          text += "速度: \(currentCadence)步/秒\n"
        }
      } else {
        // Fallback on earlier versions
      }
//        在线程中更新文本框数据
      DispatchQueue.main.async {
        self.myTextView.text = text
      }
  })

然后,测试了下,亲自去爬了3层楼梯,如下图:

基本的实现就完成了!

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



相关阅读 :
swift计步器CMPedometer的使用方法
Swift编程中数组的使用方法指南
Swift条件判断中逗号的使用方法示例
swift 字符串String的使用方法
Swift中Nil Coalescing运算符的使用技巧详解
Swift中KVC和KVO的使用
swift下LABEL控件的使用
Swift中重写和重载的使用与对比总结
Swift中通知中心(NotificationCenter)的使用示例
swift 定时器的使用
Swift中使用正则表达式的一些方法
Swift实现JSON转Model的方法及HandyJSON使用讲解
最新网友评论  共有(0)条评论 发布评论 返回顶部
月排行榜

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  服务