ios - 如何在 Swift 中将计步器重置为 0?我正在使用 CMPedometer()

标签 ios swift cmmotionmanager

我想在我的应用程序中添加一个按钮,并通过按下它来将计步器重置为 0。现在我完成了一个普通的计步器,我的代码如下:

@IBOutlet weak var step: UILabel!

    var days:[String] = []
    var stepsTaken:[Int] = []
    let activityManager = CMMotionActivityManager()
    var pedoMeter = CMPedometer()

 override func viewDidLoad() {
        super.viewDidLoad()

        var cal  = Calendar.current
        var comps = cal.dateComponents([.year, .month, .day, .hour, .minute, .second], from: Date())
        comps.hour = 0
        comps.minute = 0
        comps.second = 0
        let timeZone = NSTimeZone.system
        cal.timeZone = timeZone
        let midnight = cal.date(from: comps)!

        if(CMPedometer.isStepCountingAvailable()){


            self.pedoMeter.startUpdates(from: midnight) { (data: CMPedometerData?, error) -> Void in
                DispatchQueue.main.async(execute: { () -> Void in
                    if(error == nil){
                        self.step.text = "\(data!.numberOfSteps)"
                    }
                })
            }
        }    }

最佳答案

您不能“重置计步器”。它是一个硬件。

所做的是编写软件。没有法律规定您必须在您的计数时保持或显示与计步器保持在它的计数相同的数字。维护您自己的单独计数作为实例属性。

关于ios - 如何在 Swift 中将计步器重置为 0?我正在使用 CMPedometer(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40706318/

相关文章:

ios - 无法在设备上找到 Realm 文件

ios - 是否 managedObjectContext.object(with :) always refetch data if another (private) managedObjectContext changed and saved it?

ios - 标签顶部对齐

iOS CMStepCounter & CMMotionActivityManager

ios - 为什么我的 iOS 应用压缩得这么好?

iphone - "speed view"的本地声明隐藏了实例变量

ios - Scenekit:动画时模型改变尺寸

ios - 错误 : "array index out of range" in multidimensional array

ios - 纠正当前 UIInterfaceOrientation 的 CMMotionManager 偏航

ios - map 设备倾斜到物理世界重力?