加速度计是一种能够感应设备一个方向上线性加速度的传感器 ios设备中有三种方向,为xyz轴, 为三轴的受力情况

先导入coremotion framework框架  在build phases 的link binary with libraries中 获取到coremotion framework 框架

随后导入 试这样的

随后在viewcontroller.swift中添加代码

import UIKit
//要获得加速度陀螺仪等 必须导入相应的类CoreMotion
import CoreMotionclass ViewController: UIViewController {//加速度获取var cmm:CMMotionManager?override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//在viewdidload中加载cmm = CMMotionManager()}//在viewwillappear中获取 1表示每隔1秒钟获取 1/30表示1秒钟 获取30次override func viewWillAppear(animated: Bool) {cmm?.accelerometerUpdateInterval = 1//判断某些设备可用 比如模拟器就不可用if cmm!.accelerometerAvailable {//监听相关的数据//新添加一个线程 避免与主线程相碰撞 随后是一个闭包 表明获得数据后该呈现什么 有开始必有结束 则在viewdisappear中结束cmm!.startAccelerometerUpdatesToQueue(NSOperationQueue(), withHandler:{ ( data:CMAccelerometerData!, err:NSError! ) -> Void inprint(data)})}else{var alert = UIAlertView(title:"曹凯强", message: "加速度计不能使用", delegate: self, cancelButtonTitle: "老曹")alert.show()}}override func viewWillDisappear(animated: Bool) {cmm?.stopAccelerometerUpdates()}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}
}

陀螺计的使用 实质上也是和加速计差不多的 先获取 再判断能不能用 随后加入到队列中,在输出 最后判断是否还在活动 最后再关闭

import UIKit
import CoreMotion
class ViewController: UIViewController {//陀螺仪的获取var cmm:CMMotionManager?override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//在viewdidload中加载cmm = CMMotionManager()}//在viewwillappear中获取 1表示每隔1秒钟获取 1/30表示1秒钟 获取30次override func viewWillAppear(animated: Bool) {cmm?.gyroUpdateInterval = 1//判断某些设备可用 比如模拟器就不可用if ((cmm?.gyroAvailable) != nil) {cmm?.startGyroUpdatesToQueue(NSOperationQueue(), withHandler: { (data: CMGyroData!, errr: NSError!) -> Void inprint(data)})}}override func viewWillDisappear(animated: Bool) {if ((cmm?.gyroActive) != nil) {cmm?.stopGyroUpdates()}}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}
}

距离传感器的获取与使用

import UIKit
import CoreMotion
class ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.}//在viewwillappear中获取 1表示每隔1秒钟获取 1/30表示1秒钟 获取30次override func viewWillAppear(animated: Bool) {//获得距离传感器UIDevice.currentDevice().proximityMonitoringEnabled = true//为该距离传感器添加事件监听器 在下面实现这函数NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("change"), name: UIDeviceOrientationDidChangeNotification, object: nil)}
//实现该函数func change() {print(">>>")//获得距离传感器相应的状态 就是有误障碍物print( (UIDevice.currentDevice().proximityState))}override func viewWillDisappear(animated: Bool) {//距离监听器消失NSNotificationCenter.defaultCenter().removeObserver(self)}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}
}

电源传感器的应用 主要是监听电池的电量如何

import UIKit
import CoreMotion
class ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.}override func viewWillAppear(animated: Bool) {//获得电源传感器UIDevice.currentDevice().batteryMonitoringEnabled = true//为该电源传感器添加事件监听器 在下面实现这函数NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("change"), name: UIDeviceBatteryLevelDidChangeNotification, object: nil)}
//实现该函数func change() {print(">>>")//获得电池相应的状态print( (UIDevice.currentDevice().batteryLevel))}override func viewWillDisappear(animated: Bool) {//指定的电源监听器移除NSNotificationCenter.defaultCenter().removeObserver(self, name: UIDeviceBatteryLevelDidChangeNotification, object: nil)}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}
}

磁场传感器的实例 磁场传感器的获取必须得引入包 corelocation

import UIKit
import CoreLocation
class ViewController: UIViewController,CLLocationManagerDelegate {var lm :CLLocationManager!override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//在viewdidload中加载lm = CLLocationManager()//实现代理lm.delegate = self}override func viewWillAppear(animated: Bool) {//获取磁场lm.startUpdatingHeading()}override func viewWillDisappear(animated: Bool) {}//重写方法 实现代理时可以实现重写func locationManager(manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {print(newHeading)}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}
}

加速度 陀逻计的设备方向的使用相关推荐

  1. 小程序—这款工具把加速计、陀螺仪、设备方向的调试痛点解决了

    之前在一篇博文中捎带介绍过这款工具,反响很好,还收到了两位用户的打赏,但受那篇博文的影响,并没有被广大小程序开发者所熟知,故写一篇专门的,希望能有更多用户不再被加速计.陀螺仪.设备方向的调试难题再刺痛 ...

  2. 2021年施工员-设备方向-通用基础(施工员)试题及解析及施工员-设备方向-通用基础(施工员)模拟试题

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:美容师(技师)试题及解析参考答案及美容师(技师)考试试题解析是安全生产模拟考试一点通题库老师及美容师(技师)操作证已考过的学员汇总 ...

  3. 【无标题】2022施工员-设备方向-通用基础(施工员)考试试题及模拟考试

    题库来源:安全生产模拟考试一点通公众号小程序 2022年施工员-设备方向-通用基础(施工员)考试100题是施工员-设备方向-通用基础(施工员)试卷的多种练习模式!2022施工员-设备方向-通用基础(施 ...

  4. js/css 检测移动设备方向的变化 判断横竖屏幕

    js/css 检测移动设备方向的变化 判断横竖屏幕 方法一:用触发手机的横屏和竖屏之间的切换的事件 window.addEventListener("orientationchange&qu ...

  5. 移动端中如何检测设备方向的变化?

    除非你的应用程序限定了只在移动设备直立状态或水平状态下使用,一般情况下,你需要调整一些设定.即便你设计的布局流畅时尚,你可能需要改变某些编程代码.通常有以下一些小的策略用于检测移动设备方向的改变. o ...

  6. 2021年质量员-设备方向-通用基础(质量员)考试总结及质量员-设备方向-通用基础(质量员)模拟考试题库

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:施工员-装饰方向-岗位技能(施工员)考试报名考前必练!安全生产模拟考试一点通每个月更新施工员-装饰方向-岗位技能(施工员)找解析题 ...

  7. 【无标题】2022年施工员-设备方向-通用基础(施工员)考试模拟100题及模拟考试

    题库来源:安全生产模拟考试一点通公众号小程序 2022施工员-设备方向-通用基础(施工员)考试题库是施工员-设备方向-通用基础(施工员)考试真题新版习题库!2022年施工员-设备方向-通用基础(施工员 ...

  8. Device Orientation——设备方向

    This example shows how to track changes in device orientation. 这个例子用来展示如何去追踪设备方向的改变. 代码: <!DOCTYP ...

  9. 2021年质量员-设备方向-通用基础(质量员)免费试题及质量员-设备方向-通用基础(质量员)证考试

    题库来源:安全生产模拟考试一点通公众号小程序 2021年质量员-设备方向-通用基础(质量员)免费试题为正在备考质量员-设备方向-通用基础(质量员)操作证的学员准备的理论考试专题,每个月更新的质量员-设 ...

最新文章

  1. html手机端全屏显示和溢出问题
  2. Silverlight数据加载时,等待图标显示与隐藏(Loading)
  3. 转载:vscode gcc makefile git 配置入门
  4. “睡服”面试官系列第四篇之字符串的扩展(建议收藏学习)
  5. 方法的重载(overload)和重写(override)的区别
  6. 【Python3爬虫】破解时光网登录加密参数并实现模拟登录
  7. ZooKeeper CentOS7上安装
  8. ORACLE数据库测试题(二)
  9. [处理数据的心得][1]--相关矩阵的可视化
  10. proguard-gui 混淆代码简要笔记
  11. 基于操作系统编程与裸机编程的区别
  12. 常见视频格式有哪些?
  13. OKR 八问 —— 关于 OKR 的常见问题与思考
  14. 第一范式、第二范式、第三范式、BCNF范式详解
  15. 【读书笔记】《M型社会》大前研一
  16. y等于根号x用c语言程序表示出来,c语言描述x和y都大于或等于z的表达式是
  17. android provision
  18. 操作系统进程同步例题(四)生产者-消费者问题
  19. 计算机应用基础实践考核考什么,《计算机应用基础》实践性环节考核方案
  20. CIO谈:基于K2 BPM平台怎么做报销?

热门文章

  1. React:input输入框只能输入英文和特殊字符(可以自定义限制)
  2. 31 《象与骑象人:幸福的假设》 -豆瓣评分8.4
  3. CAN诊断浅谈 如何用CAN工具进行诊断
  4. Spring Cloud Netfilx Zuul : API网关服务
  5. [游戏学习28] MFC 时钟
  6. 企业如何落地实施研发效能度量?
  7. U盘引导盘制作工具 Rufus 3.13.1730 正式版
  8. C3P0的三种使用方法
  9. linux学习(一)虚拟机界面全屏
  10. 在一台Ubuntu计算机上构建Hyperledger Fabric网络