国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

swift計步器CMPedometer的使用方法

2020-03-09 17:44:06
字體:
來源:轉載
供稿:網友

最近公司接了個項目,是一款運動類型的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層樓梯,如下圖:

swift,計步器,CMPedometer

基本的實現就完成了!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永川市| 广宁县| 桐城市| 永昌县| 三都| 永平县| 体育| 金坛市| 姚安县| 乌鲁木齐县| 舟山市| 东安县| 铁力市| 锦州市| 北京市| 莎车县| 凤翔县| 纳雍县| 梅州市| 九龙城区| 通辽市| 东丰县| 元阳县| 原平市| 洛浦县| 旌德县| 江山市| 无锡市| 枞阳县| 团风县| 新龙县| 上犹县| 双桥区| 崇阳县| 吉林市| 聊城市| 和硕县| 扶风县| 宁陕县| 杭锦旗| 盐池县|