我正在使用touchesMoved
坐标系来检测和响应屏幕某些区域内的用户触摸。例如,如果我有一个虚拟键盘并且用户在按键上滑动,它会读取坐标并做出响应:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch * touch = [[event allTouches] anyObject];
CGPoint point = [touch locationInView:touch.view];
if(point.y < 333 && point.y > 166 && point.x < 90 && point.x > 20)
{
//do something
}
}
...但是,问题是,如果用户慢慢拖过键,或者键之间的边界,该方法会连续触发多次,弹奏钢琴键的声音会断断续续。
我怎样才能防止这种口吃?我认为在每个连续的 if 语句触发之间设置 0.25 秒的最小延迟会有所帮助。此外,这种延迟仅适用于特定的 if 语句——我希望用户能够快速拖动键并尽可能快地触发不同键的 if 语句。
有谁知道如何编写这样的代码?