swift - iOS10之后的加速器

Posted qingzZ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift - iOS10之后的加速器相关的知识,希望对你有一定的参考价值。

 

import UIKit

//1.加速器框架
import CoreMotion

class ViewController: UIViewController {

    //1.创建运动管理者 必须设置为 全局的
    let manager = CMMotionManager()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //2.判断加速计是否可用
        if !manager.isAccelerometerAvailable{
            print("加速计不可用")
            return
        }
        
        //设置采集间隔
//        manager.accelerometerUpdateInterval = 1
        manager.accelerometerUpdateInterval = 1.0/2
        
        //3.开始采集
        manager.startAccelerometerUpdates()
        
//        //push:主动告诉外界数据
//        manager.startAccelerometerUpdates(to: OperationQueue.main) { (data:CMAccelerometerData?, err:Error?) in
//            if err == nil{
//                print(data)
//                print(data?.acceleration.x, data?.acceleration.y, data?.acceleration.z)
//            }
//        }
        
    }


    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        
        //这里必须 执行  manager.startAccelerometerUpdates() 才有数据
        print(manager.accelerometerData?.acceleration.x, manager.accelerometerData?.acceleration.y, manager.accelerometerData?.acceleration.z)
    }
}

  

以上是关于swift - iOS10之后的加速器的主要内容,如果未能解决你的问题,请参考以下文章

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

如何将这个 Objective-C 代码片段写入 Swift?

Swift 徽章通知在 iOS 10 之后贬值

iOS Swift 中的 Android 片段模拟

iOS 10 - Swift 仍然通知 CloudKit:应用程序未启动,在 didFinishLaunchingWithOptions 之后读取通知