加速度 陀逻计的设备方向的使用
加速度计是一种能够感应设备一个方向上线性加速度的传感器 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.}
}
加速度 陀逻计的设备方向的使用相关推荐
- 小程序—这款工具把加速计、陀螺仪、设备方向的调试痛点解决了
之前在一篇博文中捎带介绍过这款工具,反响很好,还收到了两位用户的打赏,但受那篇博文的影响,并没有被广大小程序开发者所熟知,故写一篇专门的,希望能有更多用户不再被加速计.陀螺仪.设备方向的调试难题再刺痛 ...
- 2021年施工员-设备方向-通用基础(施工员)试题及解析及施工员-设备方向-通用基础(施工员)模拟试题
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:美容师(技师)试题及解析参考答案及美容师(技师)考试试题解析是安全生产模拟考试一点通题库老师及美容师(技师)操作证已考过的学员汇总 ...
- 【无标题】2022施工员-设备方向-通用基础(施工员)考试试题及模拟考试
题库来源:安全生产模拟考试一点通公众号小程序 2022年施工员-设备方向-通用基础(施工员)考试100题是施工员-设备方向-通用基础(施工员)试卷的多种练习模式!2022施工员-设备方向-通用基础(施 ...
- js/css 检测移动设备方向的变化 判断横竖屏幕
js/css 检测移动设备方向的变化 判断横竖屏幕 方法一:用触发手机的横屏和竖屏之间的切换的事件 window.addEventListener("orientationchange&qu ...
- 移动端中如何检测设备方向的变化?
除非你的应用程序限定了只在移动设备直立状态或水平状态下使用,一般情况下,你需要调整一些设定.即便你设计的布局流畅时尚,你可能需要改变某些编程代码.通常有以下一些小的策略用于检测移动设备方向的改变. o ...
- 2021年质量员-设备方向-通用基础(质量员)考试总结及质量员-设备方向-通用基础(质量员)模拟考试题库
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:施工员-装饰方向-岗位技能(施工员)考试报名考前必练!安全生产模拟考试一点通每个月更新施工员-装饰方向-岗位技能(施工员)找解析题 ...
- 【无标题】2022年施工员-设备方向-通用基础(施工员)考试模拟100题及模拟考试
题库来源:安全生产模拟考试一点通公众号小程序 2022施工员-设备方向-通用基础(施工员)考试题库是施工员-设备方向-通用基础(施工员)考试真题新版习题库!2022年施工员-设备方向-通用基础(施工员 ...
- Device Orientation——设备方向
This example shows how to track changes in device orientation. 这个例子用来展示如何去追踪设备方向的改变. 代码: <!DOCTYP ...
- 2021年质量员-设备方向-通用基础(质量员)免费试题及质量员-设备方向-通用基础(质量员)证考试
题库来源:安全生产模拟考试一点通公众号小程序 2021年质量员-设备方向-通用基础(质量员)免费试题为正在备考质量员-设备方向-通用基础(质量员)操作证的学员准备的理论考试专题,每个月更新的质量员-设 ...
最新文章
- html手机端全屏显示和溢出问题
- Silverlight数据加载时,等待图标显示与隐藏(Loading)
- 转载:vscode gcc makefile git 配置入门
- “睡服”面试官系列第四篇之字符串的扩展(建议收藏学习)
- 方法的重载(overload)和重写(override)的区别
- 【Python3爬虫】破解时光网登录加密参数并实现模拟登录
- ZooKeeper CentOS7上安装
- ORACLE数据库测试题(二)
- [处理数据的心得][1]--相关矩阵的可视化
- proguard-gui 混淆代码简要笔记
- 基于操作系统编程与裸机编程的区别
- 常见视频格式有哪些?
- OKR 八问 —— 关于 OKR 的常见问题与思考
- 第一范式、第二范式、第三范式、BCNF范式详解
- 【读书笔记】《M型社会》大前研一
- y等于根号x用c语言程序表示出来,c语言描述x和y都大于或等于z的表达式是
- android provision
- 操作系统进程同步例题(四)生产者-消费者问题
- 计算机应用基础实践考核考什么,《计算机应用基础》实践性环节考核方案
- CIO谈:基于K2 BPM平台怎么做报销?
热门文章
- React:input输入框只能输入英文和特殊字符(可以自定义限制)
- 31 《象与骑象人:幸福的假设》 -豆瓣评分8.4
- CAN诊断浅谈 如何用CAN工具进行诊断
- Spring Cloud Netfilx Zuul : API网关服务
- [游戏学习28] MFC 时钟
- 企业如何落地实施研发效能度量?
- U盘引导盘制作工具 Rufus 3.13.1730 正式版
- C3P0的三种使用方法
- linux学习(一)虚拟机界面全屏
- 在一台Ubuntu计算机上构建Hyperledger Fabric网络