北京iOS开发教程-CoreMotion框架..doc/ 北京千锋互联科技有限公司版权所有北京 iOS 开发教程-CoreMotion 框架 CoreMotion 是一个专门处理 Motion 的框架,其中包含了两个部分加速计和陀螺仪,在 iOS4 之前加速计是由 elerometer 类来负责采集数据,现在一般都是用 CoreMotion 来处理加速度过程,不过由于 elerometer 比较简单,同样有人在使用。加速计由三个坐标轴决定, 用户最常见的操作设备的动作移动, 晃动手机( 摇一摇), 倾斜手机都可以被设备检测到, 加速计可以检测到线性的变化, 陀螺仪可以更好的检测到偏转的动作, 可以根据用户的动作做出相应的动作, iOS 模拟器无法模拟以上动作,真机调试需要开发者账号。加速计通过感知特定方向的惯性力总量, 加速计可以测量出加速度和重力。 iOS 设备内的加速计是一个三轴加速计, 也就是说它能够检测到三维空间中的运动或重量。因此, 加速计不但可以指示用户握持设备的方式( 如自动旋转功能), 而且还可以在设备被放在桌子上时指示其正面朝上还是朝下。如图所示展示了加速计所使用的是三轴结构, 需要注意的是, 加速计对y 坐标使用了更标准的惯例,即y 轴伸长表示向上的力。如果加速计将 Q uartz 2D 作为控制机制, 那么必须要转换 y 坐标轴。使用 O penGL ES时(使用加速计控制动画时通常会用到), 则不需要转换。如果只需要知道设备的方向, 不需要知道具体方向矢量角度, 那么可以使用 UIDevice 进行操作,还可以根据方向就行判断, 具体可以参考一下苹果官网代码: -(void) viewDidLoad { // Request to turn on accelerometer and begin receiving accelerometer events [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; [[NSNotificationCenter defaultCenter] addObserver:self selector:***@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil]; }- (void)orientationChanged:(NSNotification *)notification { // Respond to changes in device orientation } / 北京千锋互联科技有限公司版权所有-(void) viewDidDisappear { // Request to stop receiving accelerometer events and turn off accelerometer [[NSNotificationCenter defaultCenter] removeObserver:self]; [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]; } 当用户晃动设备的时候,系统会通知每一个在用的设备,可以使本身成为第
北京iOS开发教程-CoreMotion框架 来自淘豆网m.daumloan.com转载请标明出处.