0

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

该功能的重复间隔(刷新率)touchesMoved比模拟器快得多。有没有办法处理差异?

4

1 回答 1

3

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

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

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

如果你真的很高级,你可以使用自定义的 NSRunLoop 而不是使用计时器,但这比我在这里解释的要多:) 总体思路是:不要在触摸事件处理程序中做所有事情。

于 2009-12-21T01:32:39.137 回答