设备的传感器
#传感器
* iPhone 上有很多的传感器, 开启会耗电量增大, 慎用
* 距离传感器: UIDevice proximityMonitorEnable: 系统通过通知的形式通知应用距离靠近或远离, 而且开启后会自动在靠近时黑屏, 远离时点亮, 通知值传了设备进来(我们自己本来也可以拿到)
#加速度感应器
* 原理: 有个硬件, 里面以手机为坐标原点, 搭建三维坐标, 测试每个方向上的力, 即加速度, 则知道哪个方向具体的方向和速度
##UIACcelerometer
* 类: UIAccelerometer: 加速计: iOS5之后不建议使用, 但是用法简单, 很多程序都有残留
* * 获取单例对象 & 设置代理, 通过代理来返回其信息 & 采样间隔:updateInterval & 实现代理方法, 里面直接拿到返回的信息
* *
* 小球实例:
* 从回调的方法中拿到加速度, 在每个方向上累加大到速度, 再累加速度到位移给小球, 做好边界检测即可
##CoreMotion
* iPhone4出来后, 增加了陀螺仪的硬件, 之后关于 motion 的编程成为重头戏, apple 增加了专门除以 motion 的这个框架
* 通过 CoreMotion 获取加速的的方式: 1. push:系统推送, 频率高 | 2. pull, 需要时再手动调用, 需要时再调用
* *
* push:
* 创建运动管理者 && 判断加速计是否可用 && 设置采样间隔 && 开始采样(采样到数据就会调用 handler,handler 会在 queue 中执行)
* 有 block 的是在 push, 没有的是用在 pull 的
* block 中拿到加速计的操作和之前的差不多,
* pull 的话在判断好加速计可用后就设置开始更新加速计. 在需要的时候直接从管理者拿到加速度就可以了
###摇一摇
* 1. 做摇一摇可以通过监听加速计的数据, 分析其数据来判断是否在进行摇一摇, 比较复杂
* 2. 还可以调用苹果提供的 API 来实现摇一摇, 十分简单: shake, 只要是响应者都能监控摇一摇
* -(void)motion..... 每个继承自 responder 的都有这个方法, 实现这些方法就能监听手机是否摇一摇
* 有开始 | 结束 | 中断 一般摇一摇结束后做事情
* 实现这些方法, 摇一摇就做完了.....
*
#bug: 控件显示不出来: —- 设置的 frame = 父控件的 frame, xy 比较大, 就在控件中看不见了, 应该设置 bounds
##获取更多硬件信息
* 设备型号 | 内存信息 | 硬盘信息 | 进程信息(appStore 下的说是能杀进程的都是假的, 调用的大量私有 API 才能杀进程, 这样的应用不会上架, webView也不能监听加载进度, 只能监听加载成功或失败) | 在项目include 中的底层 C 文件中有很多信息,
* 可以直接用别人封装好 C 的东西, 来获取这些信息, 没什么技术含量, 存耗时间的活 : iOS-System-Services | uidevice-extension
*