Swift之加速度传感器编程

Swift之加速度传感器编程,第1张

概述采用CoreMotion.framework加速度框架 代码方面主要分两块,要有一个加速度的核心类,负责获取到加速度,一个视图控制类,视图控制类可自由选择,在需要的时候调用加速度核心类。 一:加速度核心类: 首先需要创建一个加速度核心类MotionClass,导入CoreMotion 核心类的创建思路是: 1.需要创建一个单例,获取到加速度CMMotionManager实例。 2.类中需要两个方法

采用CoreMotion.framework加速度框架

代码方面主要分两块,要有一个加速度的核心类,负责获取到加速度,一个视图控制类,视图控制类可自由选择,在需要的时候调用加速度核心类。

一:加速度核心类:

首先需要创建一个加速度核心类MotionClass,导入CoreMotion

核心类的创建思路是:

1.需要创建一个单例,获取到加速度cmmotionmanager实例。

2.类中需要两个方法,一个Start获取加速度,一个Stop停止获取加速度

3.需要创建一个协议方法,用于传导获取到的加速度变量


类代码如下

////  motion.swift//  testacceleration////  Created by X-DL on 15/4/11.//  copyright (c) 2015年 dl. All rights reserved.//import UIKitimport CoreMotionprotocol MotionDelegate:NSObjectProtocol{    func updateXY(X:Double,Y:Double,Z:Double)}class MotionClass:UIVIEw{    /// 创建协议实例    weak var delegate : MotionDelegate?        /// 创建加速度单例    class var shareMotion: cmmotionmanager {        struct MotionStruct{            static var motionManager:cmmotionmanager?            static var token:dispatch_once_t = 0        }        dispatch_once(&MotionStruct.token) {            if MotionStruct.motionManager == nil            {                MotionStruct.motionManager = cmmotionmanager()            }        }        return MotionStruct.motionManager!    }        /**    开始加速度检测方法    */    func startMotion(){        let motion = MotionClass.shareMotion        if motion.gyroAvailable {            motion.accelerometerUpdateInterval = NSTimeInterval(2)            motion.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue(),withHandler: {                (data,error) in                                let x = data.acceleration.x                let y = data.acceleration.y                let z = data.acceleration.z                //调用协议,传入参数                self.delegate?.updateXY(x,Y:y,Z:z)            })        }else{            println("motino is false")        }    }    /**    停止加速度检测    */    func stopMotion(){        MotionClass.shareMotion.stopAccelerometerUpdates()    }}
这样即是加速度核心类的基本框架,而后在VC类中实现协议方法,设置MotionClass的delegate为self。然后调用相应的start或stop方法即可 总结

以上是内存溢出为你收集整理的Swift之加速度传感器编程全部内容,希望文章能够帮你解决Swift之加速度传感器编程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1088116.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存