由于加速度计值的变化,更改视图属性的最佳方法是什么?

时间:2009-05-05 16:42:57

标签: iphone uikit accelerometer

我想这样做:如果设备移动(加速度计值改变),那么我想根据该移动在视图中调整一些值。

每次加速度计值发生变化时,我都会调用一个方法吗?我认为这是一个坏主意,因为它们可能会经常更新。

4 个答案:

答案 0 :(得分:1)

如果您担心过于频繁的更改,只需使用累加器;使用一些检测变化的代码,并检查系统时间;只有在经过足够的系统时间后,才会触发(可能累积的)更改方法。

答案 1 :(得分:1)

我想是的......如果没有,你只有一个选择。定期阅读。再次缩短周期,准确度越高。因此,如果在检测到值发生变化时可以触发事件,则效率可能更高。

答案 2 :(得分:1)

如果您担心来自加速度计的噪音,您可以通过实施移动平均线来平滑输入。这样您就可以随时取样,而不必担心来自加速度计的错误启动。

http://en.wikipedia.org/wiki/Moving_average

答案 3 :(得分:1)

accelerometer:didAccelerate:中实施UIAccelerometerDelegate方法时,只需要if语句,检查上次更新之间的时间是否足够长。

在您的实施UIAccelerometerDelegate的班级中,您可以拥有一个包含lastTimeUpdated之类的属性,然后在您更改视图时更新它