swift - iOS10之后的加速器

本文介绍如何在SwiftUI应用中利用CoreMotion框架读取设备的加速度计数据。通过创建CMMotionManager实例并检查其可用性,设置更新间隔,并在ViewController的viewDidLoad方法中启动加速计更新。同时,当用户触摸屏幕时,可以实时获取到x、y、z三个方向的加速度值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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)
    }
}

  

转载于:https://www.cnblogs.com/qingzZ/p/10286545.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值