在iPhone和模拟器中触摸移动行为

时间:2009-12-21 01:17:46

标签: iphone ios-simulator touch touchesmoved

函数touchesMoved在iPhone和模拟器中的行为有所不同。

函数touchesMoved的重复间隔(刷新率)比模拟器快得多。有办法处理差异吗?

1 个答案:

答案 0 :(得分:3)

通常人们发现这是一个问题,因为他们在touchesMoved处理程序中做了一些密集的事情,当事件非常频繁地到达时,它会使界面看起来滞后。

处理此问题的一种相对简单的方法是:首先,在touchesMoved处理程序中,将触摸位置存储在一个变量中,该变量表示跟踪手指的任何位置。

立即从touchesMoved处理程序返回。创建一个NSTimer对象并将您的视图控制器设置为它的委托,并使其在您的touchesMoved处理程序中执行任何重新绘制/视图移动行为。因此,无论touchesMoved事件之间的时间如何,您都会获得接近恒定的运动。

如果你真的很高级,你可以使用自定义NSRunLoop而不是使用计时器,但这比我在这里解释的要多:)一般的想法是:不要在触摸事件处理程序中做任何事情。

相关问题