Core Motion
5342 단어 CoreMotionIOSOSXOSX
가속 계 등
CMMotionManager 클래스 를 사용 하여 이 하드웨어 에서 전 송 된 데 이 터 를 관리 합 니 다.
var motionManager = CMMotionManager()
self.motionManager.startDeviceMotionUpdatesToQueue(NSOperationQueue.mainQueue()) { (motion:CMDeviceMotion?, error:NSError?) -> Void in
let xString = NSString(format: "%.1f", (motion?.userAcceleration.x)!)
let yString = NSString(format: "%.1f", (motion?.userAcceleration.y)!)
let zString = NSString(format: "%.1f", (motion?.userAcceleration.z)!)
self.XLabel.text = xString as String
self.YLabel.text = yString as String
self.ZLabel.text = zString as String
let pitchDegress = (motion?.attitude.pitch)! * 180 / M_PI
let rollDegress = (motion?.attitude.roll)! * 180 / M_PI
let yawDegress = (motion?.attitude.yaw)! * 180 / M_PI
let pitchString = NSString(format: "%.1f", pitchDegress)
let rollString = NSString(format: "%.1f", rollDegress)
let yawString = NSString(format: "%.1f", yawDegress)
self.pitchLabel.text = pitchString as String
self.rollLabel.text = rollString as String
self.yawLabel.text = yawString as String
}
고도계
let altimer = CMAltimeter()
if CMAltimeter.isRelativeAltitudeAvailable() {
var currentAltitude: Float = 0.0
altimer.startRelativeAltitudeUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: { (data:CMAltitudeData?, error:NSError?) -> Void in
currentAltitude += Float((data?.relativeAltitude)!)
self.heightLabel.text = "\(currentAltitude)"
})
}
만보 기
let pedometer = CMPedometer()
if CMPedometer.isStepCountingAvailable() {
let calender = NSCalendar.currentCalendar()
let now = NSDate()
let weekAgo = calender.dateByAddingUnit(NSCalendarUnit.Day, value: -6, toDate: now, options: NSCalendarOptions())
pedometer.queryPedometerDataFromDate(weekAgo!, toDate: now, withHandler: { (data:CMPedometerData?, error:NSError?) -> Void in
NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void in
if let stepData = data{
self.weekLabel.text = "\(stepData.numberOfSteps)"
}
})
})
// API
// pedometer.startPedometerUpdatesFromDate(now, withHandler: { (data:CMPedometerData?, error:NSError?) -> Void in
// if let stepData = data{
// self.nowSteps.text = "\(stepData.numberOfSteps)"
// }
// })
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IOS를 사용하여 와이파이 전송 방법업무 장면에 핸드폰에 있는 파일, 사진을 다른 장치에 전달해야 하는 것이 존재한다. 전서나 자료 따위에만 국한된 것이 아니라 모두 전달될 수 있다 가장 base 방법: 설비 간에 클라우드를 추가하고 설비가 자료를 클...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.