如何检测用户是否将手指放在屏幕上的对象上 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 类中
您至少需要一个状态变量和一个计时器。
在目标区域内触地时,将状态变量设置为当前时间并启动 1 秒计时器。在目标区域外的任何触摸移动或修饰事件中,清除状态变量。1 秒计时器关闭后,检查状态变量。如果距离 1 秒或更长时间(因此尚未清除或更改)仍有时间,则该触摸已在目标上至少 1 秒。