我非常喜欢使用UIMotionEffect子类所取得的一些比听CMMotionManager更好的结果。使用CoreMotion通常会带来不准确的结果,因为很多人通过网络抱怨它。
我找不到任何解释,但这些差异,在哪些传感器是使用的,或使用什么操作这些传感器的输出,解释了不同的结果,我正在经历。
苹果公司的UIMotionEffect:https://developer.apple.com/documentation/uikit/uimotioneffect
苹果公司的CMMotionManager:https://developer.apple.com/documentation/coremotion/cmmotionmanager
现在很明显,CMMotionManager为您提供了更多的功能,比如陀螺、加速等等,但我主要问的是滚动/俯仰,我可以作为UIOffset从覆盖UIMotionEffect获得,也可以从CMDeviceMotion.attitude获得。
发布于 2018-12-19 08:50:29
这可能不是问这个问题的合适地方,不过我会尽力回答你的。
CoreMotion是一个API,用于从加速度计、陀螺仪、磁强计和其他更高级别的指示器获取传感器的原始值。它可以配置不同的更新配置文件(从非常高的刷新速率到经济、省电的刷新速率)。
使用UIMotionEffect,您可以沿设备的水平和垂直轴旋转移动/动画视图。它主要用于创建视差效果,如背景在跳板上移动(主屏幕)。您还必须对该类进行子类处理,或者使用已经生成的UIInterpolatingMotionEffect。
UIMotionEffect是为了对你的UI产生快速而微妙的影响而制作的,当CoreMotion更适合于密集陀螺仪的使用时,比如在游戏中和运动控制一样,它可以在开箱即用、能量消耗小的情况下使用。
哦,而且UIMotionEffect是永久的中心视图,所以当你旋转你的手机,站在一边,它会轻轻地滑回中心,以匹配你的新位置,在游戏中不太有用。
https://stackoverflow.com/questions/53846778
复制相似问题