0

我正在编写一个 iPad 应用程序,该应用程序需要非常精确地计时手指移动,因此我热衷于获得最佳性能和准确性。我对此有两个问题:

  1. 为了截取屏幕上的手指位置,我必须使用 touchesMoved(),还是有较低级别的 API?

  2. 有谁知道 touchesMoved() 是否返回屏幕上的确切位置,或者 iPad 是否执行了一些插值?

谢谢!

4

2 回答 2

2

您有 3 种截取手指位置的方法: a) UIResponder Delegate 方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

b) UIGestureRecognizer 的方法

c) 你也可以覆盖- (void)sendEvent:(UIEvent *)event; 在 UIApplicationDelegate 或 UIWindow 中捕获 UIEvents - 但不推荐使用此方法。

所有这些方法都适用于包含 touch point的 UITouch 。该点由设备硬件计算,因此不会影响精度。

最后一点:推荐的最小触摸区域为 44x44。如果您触摸的区域会更小,那么用户会因为使用您的软件而感到不舒服。

于 2011-06-22T09:06:29.267 回答
0

触摸不是很精确,因为手指不是很精确(低于鼠标光标),并且因为跟踪硬件不是很精确(因为它不需要,因为手指大小 - 它不起作用没有明显的接触区域)。

话虽如此,与许多其他电容式触摸设备相比,iDevices 的触摸屏非常出色。我只是不确定在实践中是否可以达到像素精度。

不过,很容易对此进行试验。

于 2011-06-22T09:14:40.813 回答