UILongPressGesture可在ios ver 3.2及更高版本中使用.但我正在尝试开发应用程序以实现最大兼容性,从而针对ios ver2.0
任何人都可以指导我如何在ios v2.0中完成长按手势
Dan*_*son 18
对于单个手指,它非常简单:在touchesBegan方法中启动计时器并在计时器触发时触发操作.如果touchesEnded在它发生之前触发了计时器,请取消计时器.这是一个使用该performSelector:withObject:afterDelay:方法的实现.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self performSelector:@selector(fireLongPress)
withObject:nil
afterDelay:LONG_PRESS_THRESHOLD];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[NSObject cancelPreviousPerformRequestsWithTarget:self];
}
- (void)fireLongPress {
// do what you want to do
}
Run Code Online (Sandbox Code Playgroud)
如果手指移得太远,你可能还想杀死计时器.
多点触控,它有点复杂.你必须跟踪哪个触摸是哪个,并决定做什么,例如当一个手指按压的时间足够长但另一个手指未按下(或弄清楚是什么UILongPressGestureRecognizer)时.
| 归档时间: |
|
| 查看次数: |
8693 次 |
| 最近记录: |