我想这样做:如果设备移动(加速度计值改变),那么我想根据该移动在视图中调整一些值。
每次加速度计值发生变化时,我都会调用一个方法吗?我认为这是一个坏主意,因为它们可能会经常更新。
答案 0 :(得分:1)
如果您担心过于频繁的更改,只需使用累加器;使用一些检测变化的代码,并检查系统时间;只有在经过足够的系统时间后,才会触发(可能累积的)更改方法。
答案 1 :(得分:1)
我想是的......如果没有,你只有一个选择。定期阅读。再次缩短周期,准确度越高。因此,如果在检测到值发生变化时可以触发事件,则效率可能更高。
答案 2 :(得分:1)
如果您担心来自加速度计的噪音,您可以通过实施移动平均线来平滑输入。这样您就可以随时取样,而不必担心来自加速度计的错误启动。
答案 3 :(得分:1)
在accelerometer:didAccelerate:
中实施UIAccelerometerDelegate
方法时,只需要if
语句,检查上次更新之间的时间是否足够长。
在您的实施UIAccelerometerDelegate
的班级中,您可以拥有一个包含lastTimeUpdated
之类的属性,然后在您更改视图时更新它