CoreMotion - 确定iOS设置中是否禁用动画的方法?

时间:2013-12-11 20:41:16

标签: ios core-motion cmmotionmanager

在iOS 7上,用户可以在“设置”中选择禁用设备动作 - >一般 - >辅助功能 - >减少运动。

我正在创建基于UITableView滚动的UI效果,所以我没有使用CMMotionManagerCoreMotion框架来创建任何动作效果。

但是,我想尊重用户的设置,如果用户在“设置”中启用了Reduce Motion,则无法创建动作效果。

CMMotionManager includes an instance method deviceMotionActive检查它是否有效(我假设这是正确的检查),但是,我不想将管理器初始化为做这个检查,遗憾的是我找不到任何关于类方法的文档,它会返回类似的布尔值,有点像MFMessageComposeViewController上存在类方法来检查iMessage / SMS可用性(+(BOOL)canSendText)等等上。

谢谢!

1 个答案:

答案 0 :(得分:0)

你混淆了两个叫做“动作”的东西。 CMMotionManager用于访问报告用户如何物理移动设备的传感器,例如陀螺仪和加速度计。它与动画效果无关,如用于动画视图的UIMotionEffect对象。

deviceMotionActive方法仅指示您的应用当前是否已注册以接收来自CoreMotion的动画更新。仅当您的应用程序调用了CMMotionManager startXXXUpdate方法之一时,才会出现这种情况。同样,它与用户设置或UIMotionEffect对象无关。

更新:正如John在评论中提到的那样,iOS 8中似乎有一个API:请参阅stackoverflow.com/a/25453082/2904769。