UIMotionEffect和CoreMotion有何不同?

时间:2018-12-19 07:55:09

标签: ios core-motion uimotioneffect

与听UIMotionEffect相比,CMMotionManager子类给我带来了更好的结果,我非常享受。使用CoreMotion通常会带来错误,因为很多人都通过网络抱怨它。

我无法找到任何解释,尽管这些解释有何不同,使用的是哪种传感器,或者这些传感器的输出采用了哪种操作,这些解释了我所遇到的不同结果。

苹果公司的

UIMotionEffecthttps://developer.apple.com/documentation/uikit/uimotioneffect

苹果公司的

CMMotionManagerhttps://developer.apple.com/documentation/coremotion/cmmotionmanager

现在,尽管很明显CMMotionManager为您提供了更多功能,例如陀螺仪,加速等,但我主要是在询问侧倾/俯仰,我可以通过覆盖{{1 }}或从UIOffset获取。

1 个答案:

答案 0 :(得分:2)

这可能不是问这个问题的正确位置,但是我会尽力回答您。

CoreMotion是一个API,用于从加速度计,陀螺仪,磁力计和其他更高级别的指示器访问传感器的原始值。可以为它配置不同的更新配置文件(从非常高的刷新率到经济,省电的刷新率)。

借助UIMotionEffect,您可以沿设备的水平和垂直轴旋转移动/设置视图的动画。它主要用于创建视差效果,例如背景在跳板上(主屏幕)上移动。您还必须继承此类或使用已经制作的UIInterpolatingMotionEffect

UIMotionEffect专为在用户界面上提供快速,微妙的效果而设计,当CoreMotion更适用于密集陀螺仪使用(例如在运动游戏中)时,可以以较小的能量消耗立即使用控件。

哦,并且UIMotionEffect始终将视图居中,因此,当您旋转手机并站在侧面时,它会慢慢滑回中心以匹配您的新位置,这在游戏中不太有用。