CoreMotion 2 Acquisition of the value of the activity meter (thu lại các giá trị của đồng hồ hoạt động)

Swift 3.0 info.plistにNSMotionUsageDescriptionを追加します。 // // ViewController.swift // coremotion002 // // Copyright © 2016年 FaBo, Inc. All rights reserved. // import UIKit import CoreMotion class ViewController: UIViewController { var myPedometer = CMPedometer() // ペドメーター(歩数計)を生成. let myDistanceLabel: UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: 150, height: 150)) let myTimeLabel: UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: 150, height: 150)) let mySpeedLabel: UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: 150, height: 150)) override func viewDidLoad() { super.viewDidLoad() // Labelを作成. myDistanceLabel.backgroundColor = UIColor.blue myDistanceLabel.layer.masksToBounds = true myDistanceLabel.layer.cornerRadius = 75.0 myDistanceLabel.textColor = UIColor.white myDistanceLabel.shadowColor = UIColor.gray myDistanceLabel.font = UIFont.systemFont(ofSize: CGFloat(30)) myDistanceLabel.textAlignment = NSTextAlignment.center myDistanceLabel.layer.position = CGPoint(x: self.view.bounds.width/2,y: 100) myDistanceLabel.text = "0 m" myTimeLabel.backgroundColor = UIColor.orange myTimeLabel.layer.masksToBounds = true myTimeLabel.layer.cornerRadius = 75.0 myTimeLabel.textColor = UIColor.white myTimeLabel.shadowColor = UIColor.gray myTimeLabel.font = UIFont.systemFont(ofSize: CGFloat(30)) myTimeLabel.textAlignment = NSTextAlignment.center myTimeLabel.layer.position = CGPoint(x: self.view.bounds.width/2,y: 275) myTimeLabel.text = "0 sec" mySpeedLabel.backgroundColor = UIColor.red mySpeedLabel.layer.masksToBounds = true mySpeedLabel.layer.cornerRadius = 75.0 mySpeedLabel.textColor = UIColor.white mySpeedLabel.shadowColor = UIColor.gray mySpeedLabel.font = UIFont.systemFont(ofSize: CGFloat(30)) mySpeedLabel.textAlignment = NSTextAlignment.center mySpeedLabel.layer.position = CGPoint(x: self.view.bounds.width/2,y: 450) mySpeedLabel.text = "0 m/S" // Viewの背景色を青にする. self.view.backgroundColor = UIColor.cyan // Viewに追加. self.view.addSubview(myDistanceLabel) self.view.addSubview(myTimeLabel) self.view.addSubview(mySpeedLabel) // ペドメーター(歩数計)で計測開始. myPedometer.startUpdates(from: Date(), withHandler: {(pedometerData, error) in if let e = error { print(e.localizedDescription) return } guard let data = pedometerData else { return } let myDistance = data.distance!.doubleValue let myTime: Double = data.endDate.timeIntervalSince(data.startDate) let mySpeed = myDistance / myTime self.myDistanceLabel.text = "\(round(myDistance)) m" self.myTimeLabel.text = "\(round(myTime)) sec" self.mySpeedLabel.text = "\(round(mySpeed)) m/s" }) } } Swift 2.3 // // ViewController.swift // coremotion002 // // Copyright © 2016年 FaBo, Inc. All rights reserved. // import UIKit import CoreMotion class ViewController: UIViewController { var myPedometer = CMPedometer() // ペドメーター(歩数計)を生成. let myDistanceLabel: UILabel = UILabel(frame: CGRectMake(0,0,150,150)) let myTimeLabel: UILabel = UILabel(frame: CGRectMake(0,0,150,150)) let mySpeedLabel: UILabel = UILabel(frame: CGRectMake(0,0,150,150)) override func viewDidLoad() { super.viewDidLoad() // Labelを作成. myDistanceLabel.backgroundColor = UIColor.blueColor() myDistanceLabel.layer.masksToBounds = true myDistanceLabel.layer.cornerRadius = 75.0 myDistanceLabel.textColor = UIColor.whiteColor() myDistanceLabel.shadowColor = UIColor.grayColor() myDistanceLabel.font = UIFont.systemFontOfSize(CGFloat(30)) myDistanceLabel.textAlignment = NSTextAlignment.Center myDistanceLabel.layer.position = CGPoint(x: self.view.bounds.width/2,y: 100) myDistanceLabel.text = "0 m" myTimeLabel.backgroundColor = UIColor.orangeColor() myTimeLabel.layer.masksToBounds = true myTimeLabel.layer.cornerRadius = 75.0 myTimeLabel.textColor = UIColor.whiteColor() myTimeLabel.shadowColor = UIColor.grayColor() myTimeLabel.font = UIFont.systemFontOfSize(CGFloat(30)) myTimeLabel.textAlignment = NSTextAlignment.Center myTimeLabel.layer.position = CGPoint(x: self.view.bounds.width/2,y: 275) myTimeLabel.text = "0 sec" mySpeedLabel.backgroundColor = UIColor.redColor() mySpeedLabel.layer.masksToBounds = true mySpeedLabel.layer.cornerRadius = 75.0 mySpeedLabel.textColor = UIColor.whiteColor() mySpeedLabel.shadowColor = UIColor.grayColor() mySpeedLabel.font = UIFont.systemFontOfSize(CGFloat(30)) mySpeedLabel.textAlignment = NSTextAlignment.Center mySpeedLabel.layer.position = CGPoint(x: self.view.bounds.width/2,y: 450) mySpeedLabel.text = "0 m/S" // Viewの背景色を青にする. self.view.backgroundColor = UIColor.cyanColor() // Viewに追加. self.view.addSubview(myDistanceLabel) self.view.addSubview(myTimeLabel) self.view.addSubview(mySpeedLabel) // ペドメーター(歩数計)で計測開始. myPedometer.startPedometerUpdatesFromDate(NSDate(), withHandler: { pedometerData, error in if let e = error { print(e.localizedDescription) return } guard let data = pedometerData else { return } let myDistance = data.distance!.doubleValue let myTime: Double = data.endDate.timeIntervalSinceDate(data.startDate) let mySpeed = myDistance / myTime self.myDistanceLabel.text = "\(round(myDistance)) m" self.myTimeLabel.text = "\(round(myTime)) sec" self.mySpeedLabel.text = "\(round(mySpeed)) m/s" }) } } 2.3と3.0の差分 CGRectMake(CGFloat, CGFloat, CGFloat, CGFloat)からCGRect(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat)に変更 CMPedometer.startPedometerUpdatesFromDate(NSDate, withHandler: CMPedometerHandler)からCMPedometer.startUpdates(from: Date, withHandler: CMPedometerHandler)に変更 NSDateからDateに変更 NSDate.endDate.timeIntervalSinceDate(NSDate)からDate.endDate.timeIntervalSince(Date)に変更

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.