您的位置:首页 > 产品设计 > UI/UE

'UIAccelerometer' is deprecated:first deprecated in iOS 5.0-UIAccelerometer has replaced by the CoreMotion framework

2013-10-31 11:18 597 查看
iOS7中,原来在项目中,使用的筛子振动的类是UIAccelerometer。运行iOS7后,会报一个警告。



意思大概是说UIAccelerometer在iOS5.0之后就被CoreMotion framework框架给取代了。

我是这样解决的:用CoreMotion framework框架来替代,

1,导入

#import <CoreMotion/CoreMotion.h>

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,当你不需要的时候,记得停止更新。

[_manager stopAccelerometerUpdates];

7,这样即可解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐