与听UIMotionEffect
相比,CMMotionManager
子类给我带来了更好的结果,我非常享受。使用CoreMotion
通常会带来错误,因为很多人都通过网络抱怨它。
我无法找到任何解释,尽管这些解释有何不同,使用的是哪种传感器,或者这些传感器的输出采用了哪种操作,这些解释了我所遇到的不同结果。
苹果公司的 UIMotionEffect
:
https://developer.apple.com/documentation/uikit/uimotioneffect
CMMotionManager
:
https://developer.apple.com/documentation/coremotion/cmmotionmanager
现在,尽管很明显CMMotionManager
为您提供了更多功能,例如陀螺仪,加速等,但我主要是在询问侧倾/俯仰,我可以通过覆盖{{1 }}或从UIOffset
获取。
答案 0 :(得分:2)
这可能不是问这个问题的正确位置,但是我会尽力回答您。
CoreMotion
是一个API,用于从加速度计,陀螺仪,磁力计和其他更高级别的指示器访问传感器的原始值。可以为它配置不同的更新配置文件(从非常高的刷新率到经济,省电的刷新率)。
借助UIMotionEffect
,您可以沿设备的水平和垂直轴旋转移动/设置视图的动画。它主要用于创建视差效果,例如背景在跳板上(主屏幕)上移动。您还必须继承此类或使用已经制作的UIInterpolatingMotionEffect
。
UIMotionEffect
专为在用户界面上提供快速,微妙的效果而设计,当CoreMotion
更适用于密集陀螺仪使用(例如在运动游戏中)时,可以以较小的能量消耗立即使用控件。
哦,并且UIMotionEffect
始终将视图居中,因此,当您旋转手机并站在侧面时,它会慢慢滑回中心以匹配您的新位置,这在游戏中不太有用。