0

如何检测用户是否将手指放在屏幕上的对象上 1 秒钟?

谢谢,

马丁

4

2 回答 2

1

看看 UITouch 类的 timestamp 属性

时间戳 触摸发生的时间或上次突变的时间。(只读)

@property(nonatomic, readonly) NSTimeInterval 时间戳 讨论 这个属性的值是时间,以秒为单位,自系统启动以来,触摸发生或上次更改。您可以存储此属性的初始值并将其与 UITouch 实例的后续时间戳值进行比较,以确定触摸的持续时间,如果正在滑动,还可以确定移动的速度。关于 time-since-boot 值的定义,请参见 NSProcessInfo 类的 systemUptime 方法的描述。

你应该使用它

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

根据您的目标操作系统在 UIResponder 或 UIGestureRecognizer 类中

于 2010-10-30T09:22:35.073 回答
1

您至少需要一个状态变量和一个计时器。

在目标区域内触地时,将状态变量设置为当前时间并启动 1 秒计时器。在目标区域外的任何触摸移动或修饰事件中,清除状态变量。1 秒计时器关闭后,检查状态变量。如果距离 1 秒或更长时间(因此尚未清除或更改)仍有时间,则该触摸已在目标上至少 1 秒。

于 2010-10-30T16:34:46.593 回答