iOS7中,原来在项目中,使用的筛子振动的类是UIAccelerometer。运行iOS7后,会报一个警告。
意思大概是说UIAccelerometer在iOS5.0之后就被CoreMotion framework框架给取代了。
我是这样解决的:用CoreMotion framework框架来替代,
1,导入
#import
2,并声明为全局变量(或者属性),
CMMotionManager *_manager;
3,然后在初始化的时候生成,并设置更新频率,启动更新
_manager = [[CMMotionManager alloc]init];
_manager.accelerometerUpdateInterval=1.0/60.0;
[_managerstartAccelerometerUpdates];
4,启动一个定时器,时刻检测振动状态
[NSTimer scheduledTimerWithTimeInterval:1.0/60.0target:selfselector:@selector(shackAction) userInfo:nilrepeats:YES];
5,在定时器方法里,时刻判断加速计的x,y,z的便宜,超过一定程度即为筛子振动。
if (fabsf(_manager.accelerometerData.acceleration.x) > 2.0 || fabsf(_manager.accelerometerData.acceleration.y) > 2.0 ||fabsf(_manager.accelerometerData.acceleration.z) > 2.0)
6,这样即可解决。