最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

swift計步器CMPedometer的使用方法

 更新時間:2017年09月29日 11:31:35   作者:稻草人11223  
這篇文章主要為大家詳細(xì)介紹了swift計步器CMPedometer的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近公司接了個項目,是一款運(yùn)動類型的APP,可以檢測運(yùn)動量(例如:步數(shù),上下樓等)、睡眠信息、速度等信息,因為以前粗略的了解過傳感器方面的相關(guān)信息,知道主要是蘋果設(shè)備內(nèi)置的傳感器在起作用,傳感器的種類也很多,有興趣的可以去查看蘋果官方文檔或者查閱大神們的博客都可以找到!但是一直也沒有自己寫一下,做個測試:

話不多說,代碼如下:

1、準(zhǔn)備

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

2、在plist文件中添加相關(guān)權(quán)限描述:

Privacy - Motion Usage Description  :String    計步器需要獲取您的運(yùn)動信息

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)
  
//    創(chuàng)建觸發(fā)按鈕
  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)
}

//  開始獲取步數(shù)統(tǒng)計數(shù)據(jù)
func startPedometerUpdates(){
  
//   判斷設(shè)備支持情況
  guard CMPedometer.isStepCountingAvailable() else {
    self.myTextView.text = "\n當(dāng)前設(shè)備不支持獲取步數(shù)\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)
  
//初始化并開始實時獲取數(shù)據(jù)
    self.pedometer.startUpdates (from: midnightOfToday!, withHandler: { pedometerData, error in
      //錯誤處理
      guard error == nil else {
        print(error!)
        return
      }
    
      //獲取各個數(shù)據(jù)
      var text = "---今日運(yùn)動數(shù)據(jù)---\n"
      if let numberOfSteps = pedometerData?.numberOfSteps {
        text += "步數(shù): \(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
      }
      
//        在線程中更新文本框數(shù)據(jù)
      DispatchQueue.main.async {
        
        self.myTextView.text = text
      }
      
  })

然后,測試了下,親自去爬了3層樓梯,如下圖:

基本的實現(xiàn)就完成了!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Swift代碼實現(xiàn)冒泡排序算法的簡單實例

    Swift代碼實現(xiàn)冒泡排序算法的簡單實例

    冒牌排序可謂最基本的排序算法之一,穩(wěn)定而沒有優(yōu)化空間:D 下面就一起來看一下Swift代碼實現(xiàn)冒泡排序算法的簡單實例:
    2016-06-06
  • RxSwift使用技巧之過濾操作詳解

    RxSwift使用技巧之過濾操作詳解

    RxSwift的目的是讓讓數(shù)據(jù)/事件流和異步任務(wù)能夠更方便的序列化處理,能夠使用Swift進(jìn)行響應(yīng)式編程,下面這篇文章主要給大家介紹了關(guān)于RxSwift使用技巧之過濾操作的相關(guān)資料,需要的朋友可以參考下。
    2017-09-09
  • Compose聲明式代碼語法對比React?Flutter?SwiftUI

    Compose聲明式代碼語法對比React?Flutter?SwiftUI

    這篇文章主要為大家介紹了Compose聲明式代碼語法對比React?Flutter?SwiftUI來解釋為什么說?Compose?的聲明式代碼最簡潔,有需要的朋友可以借鑒參考下
    2022-08-08
  • swift實現(xiàn)簡易計算器項目

    swift實現(xiàn)簡易計算器項目

    這篇文章主要為大家詳細(xì)介紹了swift實現(xiàn)簡易計算器項目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Swift4使用GCD實現(xiàn)計時器

    Swift4使用GCD實現(xiàn)計時器

    這篇文章主要為大家詳細(xì)介紹了Swift4使用GCD實現(xiàn)計時器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Swift中內(nèi)置的集合類型學(xué)習(xí)筆記

    Swift中內(nèi)置的集合類型學(xué)習(xí)筆記

    Swift中自帶數(shù)組、set、字典三大集合類型,這里將學(xué)習(xí)過程中的基礎(chǔ)的Swift中內(nèi)置的集合類型學(xué)習(xí)筆記進(jìn)行整理,需要的朋友可以參考下
    2016-06-06
  • Swift教程之控制流詳解

    Swift教程之控制流詳解

    這篇文章主要介紹了Swift教程之控制流詳解,本文詳細(xì)講解了Swift中的for循環(huán)、for-in循環(huán)、For-Condition-Increment條件循環(huán)、while循環(huán)、Do-while循環(huán)、if條件語句等控制流語句,需要的朋友可以參考下
    2015-01-01
  • Swift語言中的函數(shù)學(xué)習(xí)教程

    Swift語言中的函數(shù)學(xué)習(xí)教程

    這篇文章主要介紹了Swift語言中的函數(shù)學(xué)習(xí)教程,著重講了Swift函數(shù)的參數(shù)傳遞用法,需要的朋友可以參考下
    2015-11-11
  • 升級到Swift 4.0可能遇到的坑總結(jié)

    升級到Swift 4.0可能遇到的坑總結(jié)

    這篇文章主要給大家介紹了關(guān)于升級到Swift 4.0可能遇到的坑的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用swift4具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • iOS UITableView展開縮放動畫實例代碼

    iOS UITableView展開縮放動畫實例代碼

    這篇文章主要介紹了Swift UITableView展開縮放動畫實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

长葛市| 高邑县| 凌源市| 林芝县| 麻栗坡县| 寻乌县| 隆德县| 麻阳| 乌拉特中旗| 衡山县| 尼勒克县| 新泰市| 汉川市| 天长市| 盱眙县| 进贤县| 逊克县| 盱眙县| 新兴县| 定结县| 延吉市| 江华| 满洲里市| 广南县| 霍城县| 资阳市| 黄陵县| 雅江县| 郁南县| 芷江| 临沭县| 阳新县| 滨州市| 五原县| 贺州市| 泸州市| 江津市| 沈丘县| 高安市| 新巴尔虎右旗| 临高县|